2014-09-12 39 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=", "))))