2016-11-22 78 views
0

字符串列假设我们有:我如何粘贴data.frame

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

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

在我看来,以下应该工作?

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

以T他应用逻辑。 'mydf [“concat”] < - apply(mydf,1,paste0,collapse =“”)' –

回答

3

除了@ akrun的答案,这里是为什么你的代码没有工作的简短说明。
什么要传递到paste0在你的代码的载体和这里的paste和行为paste0与向量:

> 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" 
3

我们可以使用do.callpaste0以加快执行速度

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