r - 将不均匀出现的以逗号分隔的字符串拆分为列并填充缺失值

标签 r string split multiple-columns

我有一个包含逗号分隔字符串的数据框:

df <- data.frame(x = c("a,b,c", "a", "a,b"))

我想将字符串拆分为单独的列,从而产生 3 个新列。对于少于 3 个字符串的行,应使用缺失值填充列。

到目前为止,我尝试过的是使用 strsplit 命令:

dfb <- strsplit(df, ",")

返回错误:

non-character argument

我也尝试过分开,这将提供额外的“正确填写”功能:

dfnew2 <- separate(df, c("X","Y"), sep = ",", fill = "right")

返回错误:

var must evaluate to a single number or a column name, not a character vector

我的预期结果应该是一个像这样的数据框:

X Y   Z
a b   c
a n/a n/a
a b   n/a

您有什么建议吗?非常感谢!

最佳答案

使用read.table:

read.table(text = as.character(df$x), sep = ",", as.is = TRUE, fill = TRUE,
  na.strings = "")

给予:

  V1   V2   V3
1  a    b    c
2  a <NA> <NA>
3  a    b <NA>

关于r - 将不均匀出现的以逗号分隔的字符串拆分为列并填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57080813/

相关文章:

r - 如何找到日期和时间之间的重叠?

python - 如何获取用户输入并在 python 中进行搜索?

c - C 中使用分隔符分割字符串

python - 从 pandas 数据框中删除句子长度超过特定字长的行

r - 显示没有给定字符 (#) 的所有向量

r - 计算数据框中有多少值超出限制

r - 从 R 中的字符串中提取字母

python - 将数据帧拆分为多个数据帧

r - 如何在 R Shiny 中的同一行上创建带有超链接或其他元素的单行文本?

python - 字符串必须包含多个单词