字符串列假設我們有:我如何粘貼data.frame
mydf <- data.frame(a= LETTERS, b = LETTERS, c =LETTERS)
現在,我們要添加一個新的列,其中包含所有列的串聯。 因此,新列中的行讀取「AAA」,「BBB」,...
在我看來,以下應該工作?
mydf[,"Concat"] <- apply(mydf, 1, paste0)
字符串列假設我們有:我如何粘貼data.frame
mydf <- data.frame(a= LETTERS, b = LETTERS, c =LETTERS)
現在,我們要添加一個新的列,其中包含所有列的串聯。 因此,新列中的行讀取「AAA」,「BBB」,...
在我看來,以下應該工作?
mydf[,"Concat"] <- apply(mydf, 1, paste0)
除了@ 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"
我們可以使用do.call
與paste0
以加快執行速度
mydf[, "Concat"] <- do.call(paste0, mydf)
以T他應用邏輯。 'mydf [「concat」] < - apply(mydf,1,paste0,collapse =「」)' –