我有一个包含以下几行的表格
df <- data.frame(Time=c(1,3),date=c(23,12),
people=c("Apple&June&Peter","Apple&May&Mary"),stringsAsFactors=FALSE)
Time date people
1 23 Apple&June&Peter
3 12 Apple&May&Mary
我需要将它们分成不同的行:
Time date people
1 23 Apple
1 23 June
1 23 Peter
3 12 Apple
3 12 May
3 12 Mary
我知道 reshape + colsplit 可用于将人员列拆分为同一行上的不同列。
行怎么样?如何将它们分成不同的行但同一列?
最佳答案
使用 strsplit 执行此操作的基本方法:
as.data.frame(
t(
do.call(cbind,
lapply(1:nrow(df),function(x){
sapply(unlist(strsplit(df[x,3],"&")),c,df[x,1:2],USE.NAMES=FALSE)
})
)
)
)
V1 Time date
1 Apple 1 23
2 June 1 23
3 Peter 1 23
4 Apple 3 12
5 May 3 12
6 Mary 3 12
关于r - 有没有类似 colsplit 但将单元格拆分到同一列不同行的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5569573/