每10行后在R中连接

时间:2014-09-12 12:23:07

标签: r dataframe concatenation paste

我有一个包含113行的数据框,我想连接每10行。

我正在尝试这样的事情:

test<-runif(113)
test2<-paste(test, collapse", ")

我不知道每10行可以指定一个人。

2 个答案:

答案 0 :(得分:2)

如果是data.frame

set.seed(42)
d1 <- as.data.frame(matrix(sample(1:20, 4*113,replace=TRUE), ncol=4))
indx <- (seq_len(nrow(d1))-1)%/%10 +1
lapply(split(d1, indx), function(x) paste(unlist(x), collapse=", "))

或者

 unname(c(by(d1, list(indx), FUN=function(x) paste(unlist(x), collapse=", "))))

答案 1 :(得分:1)

首先,你有一个向量,而不是数据框。

其次,粘贴语法格式不正确(可能会为您抛出错误)。

您可以使用以下内容每10个元素拆分向量,执行连接并将结果作为字符向量返回。

test2 <- unlist(lapply(split(test, ceiling(seq_along(test)/10)), paste, collapse=", "))

seq_along创建“群组”,split沿着这些群体划分向量。 lapply然后对这些组执行pasteunlist将结果转换回字符向量。