我有一个包含逗号分隔字符串的数据框:
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/