删除字符变量开头的“ The”,并将其移到末尾

时间:2018-10-13 13:59:05

标签: r regex stringr

我有一些看起来像这样的数据(最后输入数据的代码):

Year    Movie
2012    The Avengers
2015    Furious 7    
2017    The Fate of the Furious

我想要的输出是:

Year    Movie
2012    Avengers, The
2015    Furious 7
2017    Fate of the Furious, The

我应该使用stringrregex格式吗?您是否可以推荐一个链接,以比大多数网站或帮助文档更简单地解释regex

这很差,但这是我目前所能做的:

str_replace(df$Movie, pattern = "The", replacement = "")

即使只是一些关于在帮助文档中查找哪些命令的提示,或者在哪里可以找到我应该查找的内容的解释,都会有所帮助。

df <- data.frame(stringsAsFactors=FALSE,
        Year = c(2012L, 2015L, 2017L),
       Movie = c("The Avengers", "Furious 7", "The Fate of the Furious")
)

df

str_replace(df$Movie, pattern = "The", replacement = "")

2 个答案:

答案 0 :(得分:2)

尝试

sub("^([Tt]he?) (.*)", "\\2, \\1", df$Movie)
#[1] "Avengers, The"           
#[2] "Furious 7"               
#[3] "Fate of the Furious, The"
  • ?-表示“ The”是可选的,最多匹配一次。如果字符串以“ the”开头,也将匹配。感谢@rawr!

  • .-匹配任意字符-零次或多次,*表示

  • ()-将其中正则表达式匹配的文本捕获到一个编号组中,该编号组可以与编号后向引用(即\\1\\2一起使用)。参见regular-expressions.info

我希望这对您有所帮助。

答案 1 :(得分:2)

不漂亮,但这应该可以工作

n = int(input('Enter Range'))
arr=[]
for i in range(0,n):
    print(i)
    arr.append(input('Enter Number')) # Modify this line
arr.sort()
print(arr)