将数据帧的不同行转换为R中的单个行

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(),但它似乎不起作用.有没有人有一些简单的代码来做到这一点?

Cha*_*ase 7

查看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)

请注意,您可能希望首先将数据转换为字符,以防止修剪前导零.

编辑:处理第一列的多个值

使用plyrddply函数需要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)