我有这个数据集:
data <- data.frame(column = c("apple, banana, cherry",
"apple, banana, cherry, grape",
"apple, banana, cherry, grape, pear"))
data
column
1 apple, banana, cherry
2 apple, banana, cherry, grape
3 apple, banana, cherry, grape, pear
我希望我的输出是:
column1 column2 column3 column4 column5
1 apple banana cherry NA NA
2 apple banana cherry grape NA
3 apple banana cherry grape pear
我试过:strsplit(data$column, ",")
,但是这会返回一个列表,并且我很难将它返回到dataframe类型中,因为这些行的长度不等,并且不能工作:as.data.frame(strsplit(data$column, ","))
。
非常感谢!
发布于 2022-08-08 21:01:23
library(tidyr)
separate(data=df, col=column, sep=", ", into=paste0("column_", 1:5))
column_1 column_2 column_3 column_4 column_5
1 apple banana cherry <NA> <NA>
2 apple banana cherry grape <NA>
3 apple banana cherry grape pear
您可以将预期列数的计算自动化
library(stringr)
max(str_count(df$column, ","))+1 # returns 5
https://stackoverflow.com/questions/73283863
复制相似问题