首页 > 解决方案 > strsplit 会删除部分数据吗?

问题描述

当我拆分一列时,我有一个包含 66366 行的数据框,我得到一个包含 66347 行的数据框。这是我数据的一部分:

id        title
3376971   چوب شور آلبينا شيرين عسل
3376989   ويفر رنگارنگ مينو
3376990   کوکي مينو

这是我用来拆分标题的代码:

word_df <- data.frame(df,do.call('rbind',strsplit(as.character(df$title),' ',fixed=TRUE)))

我明白了:(第一行)

x1  x2     x3      x4 x5
چوب شور آلبينا شيرين عسل

我如何拆分它并在第一行的新数据框中也有它们的 id:

id        x1  x2     x3      x4 x5
3376971   چوب شور آلبينا شيرين عسل

这样至少我会明白哪个id被删除了

标签: rsplit

解决方案


由于我们在空格处进行拆分,并且“title”的每个元素中的空格数不一样,我们可以填充拆分元素NA以使长度相同,然后执行rbind

lst1 <- strsplit(as.character(df$title),' ',fixed=TRUE)
cbind(df['id'], do.call(rbind, lapply(lst1, `length<-`, max(lengths(lst1)))))

也可以使用read.table

cbind(df['id'], read.table(text = as.character(df$title),
       header = FALSE, fill = TRUE))

推荐阅读