首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将标题从年份中分离出来,当标题连续到由符号“\”分隔的几列中时

如何将标题从年份中分离出来,当标题连续到由符号“\”分隔的几列中时
EN

Stack Overflow用户
提问于 2020-04-20 20:20:37
回答 1查看 28关注 0票数 0

我有imdb.csv数据集,我想在不同的列中将标题与年份分开。问题是,在某些情况下,标题以“\”结尾,在这些情况下,标题继续到下一列。有什么方法可以将年份和年份之前的字符串分开?

正如你所看到的,在某些行中,标题甚至会继续显示为url列。解决这个问题的最好方法是什么?

下面是我尝试将该列的每个条目移动到前一列的代码(以防标题条目以“\”结尾)。

代码语言:javascript
代码运行次数:0
运行
复制
for(i in 3:ncol(imdb)) {
                        if(str_detect(imdb$title, "\\\\$")) {
                         title <- substr(x = imdb$title, start = 1, 
                                         stop = nchar(as.character(imdb$title))-1)
                         title <- paste(title, imdb[i], sep = "")
                        }}
                        imdb$title <- title
                                for (i in 3:(ncol(imdb))-1) {
                                                        imdb[, i]  = imdb[, i+1]    
                                                              }

但是代码会发出一个警告:

代码语言:javascript
代码运行次数:0
运行
复制
In if (str_detect(title, "\\\\$")) { ... :
  the condition has length > 1 and only the first element will be used

这是否意味着if只能用于一个字符串,而不能用于列?我试图将它封装到for cycle中,但还是出现了一些错误。

EN

回答 1

Stack Overflow用户

发布于 2020-04-20 22:00:15

不确定这是否有帮助,但将完整的字符串粘贴在一起,然后提取年份可能会更好:

代码语言:javascript
代码运行次数:0
运行
复制
library(stringr)

test <-  c("aaa hh \\ hhf \\(1984)", "aaad \\(1234)")

str_extract(test, "(\\d{4})")
[1] "1984" "1234"

同样,可以使用gsub删除原始字符串中的年份。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61322406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档