将不均等的逗号分隔的字符串拆分为列并填充缺失值

Zip*_*fer 2 string split r multiple-columns

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

df <- data.frame(x = c("a,b,c", "a", "a,b"))
Run Code Online (Sandbox Code Playgroud)

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

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

dfb <- strsplit(df, ",")
Run Code Online (Sandbox Code Playgroud)

返回错误:

非字符参数

我也尝试过单独使用,这将提供额外的“填充权”功能:

dfnew2 <- separate(df, c("X","Y"), sep = ",", fill = "right")
Run Code Online (Sandbox Code Playgroud)

这将返回错误:

var 必须计算为单个数字或列名,而不是字符向量

我的预期结果应该是一个数据框,例如:

X Y   Z
a b   c
a n/a n/a
a b   n/a
Run Code Online (Sandbox Code Playgroud)

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

G. *_*eck 5

用途read.table

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

给予:

  V1   V2   V3
1  a    b    c
2  a <NA> <NA>
3  a    b <NA>
Run Code Online (Sandbox Code Playgroud)