r - 如何使用分隔符将列拆分为多列,在 R 中保留行名和其他列?
问题描述
> require(reshape)
> df <- data.frame(Size=11:13, Letters=c('a|b','b|c','x|y'))
> rownames(df2)=c("Row1", "Row2", "Row3")
Size Letters
Row1 11 a|b
Row2 12 b|c
Row3 13 x|y
我想用分隔符“|”分割字母列 在保留行名和大小列的同时分成多列,这样我的结果 df 看起来像:
Size Col1 Col2
Row1 11 a b
Row2 12 b c
Row3 13 x y
当我运行以下命令时,它不会保留行名:
df2=with(df, cbind(Size, colsplit(df$Letters, split = "\\|", names = c('Col1', 'Col2'))))
Size Col1 Col2
1 11 a b
2 12 b c
3 13 x y
解决方案
你可以做:
tidyr::separate(df, Letters, into = c("Col1", "Col2"))
Size Col1 Col2
Row1 11 a b
Row2 12 b c
Row3 13 x y
或者,对您最初的尝试进行细微改动:
cbind(df["Size"], reshape::colsplit(df$Letters, split = "\\|", names = c('Col1', 'Col2')))
使用时不会保留行名with()
,colsplit()
因此没有cbind()
可查找的行名。
推荐阅读
- go - 使用 http.FileServer 按需生成文件
- c# - 尝试解压缩文件夹时访问被拒绝
- symfony - 无法将字符串分配给存储库中的属性 ID
- python - 基于多索引比较选择行
- flutter - Flutter full pdf viewer 未在 iOS 上显示 pdf(适用于 Android 设备)
- unit-testing - 使用互斥锁和解锁时 Go 测试挂起
- dpdk - 如何使用 DPDK IPN3KE 轮询模式驱动程序?
- springdoc - 按参数或标签或任何不同的键对 API 进行分组
- multithreading - 在使用 Start-ThreadJob 启动的线程中修改 PowerShell $using 范围变量
- c++ - MPI_Reduce() 到特定的数组元素