Ann*_*rie 1 row r dataframe pasting
我有一个如下所示的数据集:
CATA 1 10101
CATA 2 11101
CATA 3 10011
CATB 1 10100
CATB 2 11100
CATB 3 10011
Run Code Online (Sandbox Code Playgroud)
等等
我想将这些不同的行组合成一个长行,如下所示:
CATA 101011110110011
CATB 101001110010011
Run Code Online (Sandbox Code Playgroud)
我已尝试使用melt()然后dcast(),但它似乎不起作用.有没有人有一些简单的代码来做到这一点?
查看paste
命令,特别是collapse
参数.目前尚不清楚如果/当你对第一列有不同的值时会发生什么,所以我不敢冒险猜测.如果你遇到困难,请更新你的问题.
dat <- data.frame(V1 = "CATA", V2 = 1:3, V3 = c(10101, 11101, 10011))
paste(dat$V3, collapse= "")
[1] "101011110110011"
Run Code Online (Sandbox Code Playgroud)
请注意,您可能希望首先将数据转换为字符,以防止修剪前导零.
编辑:处理第一列的多个值
使用plyr
的ddply
函数需要data.frame作为输入和分组变量.然后我们使用与paste()
之前相同的技巧summarize()
.
library(plyr)
dat <- data.frame(V1 = sample(c("CATA", "CATB"), 10, TRUE)
, V2 = 1:10
, V3 = sample(0:100, 10, TRUE)
)
ddply(dat, "V1", summarize, newCol = paste(V3, collapse = ""))
V1 newCol
1 CATA 16110
2 CATB 19308974715042
Run Code Online (Sandbox Code Playgroud)