我有任意数量的列包含使用cbind()命令汇编的文本数据,例如:
[1,] "Text 1,1" "Text 1,2" "Text 1,n"
[2,] "Text 2,1" "Text 2,2" "Text 2,n"
[3,] "Text 3,1" "Text 3,2" "Text 3,n"
[n,] "Text n,1" "Text n,2" "Text n,n"
我想将每一行连接在一起,所以我留下了:
[1,] "Text 1,1 Text 1,2 Text 1,n"
[n,] "Text n,1 Text n,2 Text n,n"
目前,我正在使用for循环(其中textColumns是cbind()矩阵):
concatColumn <- c()
for (i in 1:ncol(textColumns)) concatColumn <- paste(concatColumn,textColumns[,i])
在R中有更简单,更优雅的方法吗?我一直在寻找使用paste()命令执行此操作的方法,而不使用for循环,但无法找到解决方案。提前感谢您的帮助!
答案 0 :(得分:23)
使用data.frame很容易,
m = matrix(letters[1:12], 3, byrow=TRUE)
do.call(paste, as.data.frame(m, stringsAsFactors=FALSE))
#[1] "a b c d" "e f g h" "i j k l"
答案 1 :(得分:8)
只需将paste
与collapse
参数一起使用:
R> row <- c("Text 1,1", "Text 1,2", "Text 1,n")
R> paste(row, collapse=" ")
[1] "Text 1,1 Text 1,2 Text 1,n"
R>
paste
是矢量化的,因此您可以一次为其提供多个参数。