2014-09-12 56 views
-1

我有一个113行的数据帧,我想连接每10行。每10行连接R后

我想是这样的:

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

我不知道我是谁可以指定每10行。

+0

请指定样品输入和输出样本,以便它更清晰你想要达到的目标。 – 2014-09-12 14:13:40

回答

1

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

其次,粘贴的语法格式不正确(这可能是折腾的错误你)。

您可以使用下面的分裂向量每10个元素,进行串联,并得到返回结果为特征向量。

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

seq_along创建“基团”和split,分沿着这些组的载体。 lapply然后在这些组上执行paste,并且unlist将结果转换回字符向量。

+0

由于“连接”,OP的意思还不清楚,因为将数字值组合成某些字符串没有任何意义。 – 2014-09-12 12:41:08

+1

除非OP正在尝试使用'writeLines'(这是我的第一个假设)输出内容。我同意,这是一个奇怪的情况,需要建立这样的结构。 – hrbrmstr 2014-09-12 12:42:39

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=", "))))