如何在data.frame中粘贴字符串列

时间:2016-11-22 10:32:34

标签: r dataframe

假设我们有:

mydf <- data.frame(a= LETTERS, b = LETTERS, c =LETTERS)

现在我们要添加一个新列,其中包含所有列的串联。 因此,新列中的行读取&#34; AAA&#34;,&#34; BBB&#34;,...

在我看来,以下应该有效吗?

mydf[,"Concat"] <- apply(mydf, 1, paste0)

2 个答案:

答案 0 :(得分:3)

我们可以do.call使用paste0来加快执行速度

mydf[, "Concat"] <- do.call(paste0, mydf)

答案 1 :(得分:3)

除了@ akrun的回答之外,这里还简要解释了为什么你的代码不起作用 您在代码中传递给paste0的内容是向量,以下是带有向量的pastepaste0的行为:

> paste0(c("A","A","A"))
[1] "A" "A" "A"

的确,要连接矢量,需要使用参数collapse

> paste0(c("A","A","A"), collapse="")
[1] "AAA"

因此,您的代码应该是:

> apply(mydf, 1, paste0, collapse="")
 [1] "AAA" "BBB" "CCC" "DDD" "EEE" "FFF" "GGG" "HHH" "III" "JJJ" "KKK" "LLL" "MMM" "NNN" "OOO" "PPP" "QQQ" "RRR" "SSS" "TTT" "UUU" "VVV"
[23] "WWW" "XXX" "YYY" "ZZZ"