r - 有没有类似 colsplit 但将单元格拆分到同一列不同行的命令?

标签 r

我有一个包含以下几行的表格

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/

相关文章:

R 编程语言合并一个数据框中的对象

r - 将数据框名称分配给列中的所有行

r - 当x也是数据表中的列时,get(x)在R data.table中不起作用

随机森林分类和训练/测试分割

r - 从 R 中的化学式中提取数字

R Shiny DateRange 仅输入月份年份

r - Excel 中的幂律比 R 好用吗?

r - 使用 ggplot aes_string、组和线型时出现的问题

r - 将图像插入到 ggplot 中的条形图中

r - 如何将带有换行符的数据从文本文件导入到 R 中?