簡體   English   中英

如何在列之間划分數據幀,例如在第n列?

[英]How do I split a data frame among columns, say at every nth column?

假設我正在使用以下數據框:

Mydata <- data.frame(X1 = c(1,2,3,4,5,6,7,8,9,10),X2 = c(1,3,1,1,1,5,1,1,8,1),
                     X3 = c(1,2,3,4,5,6,7,8,9,10),X4 = c(1,3,1,1,1,5,1,1,8,1),
                     X5 = c(1,2,3,4,5,6,7,8,9,10),X6 = c(1,3,1,1,1,5,1,1,8,1),
                     X7 = c(1,2,3,4,5,6,7,8,9,10),X8 = c(1,3,1,1,1,5,1,1,8,1),
                     X9 = c(1,2,3,4,5,6,7,8,9,10),X10 = c(1,3,1,1,1,5,1,1,8,1),
                     X11 = c(1,2,3,4,5,6,7,8,9,10),X12 = c(1,3,1,1,1,5,1,1,8,1))

我想將此數據幀分為三個單獨的數據幀,第一個數據幀中的列X1〜X4,第二個數據幀中的X5〜X8,以及X9〜X12。 我將如何編寫代碼以繼續此模式以用於任意數量的列?

每4列拆分一次Mydata 我們可以顯式使用split.default

split.default(Mydata, rep(1:3, each = 4))

“默認”方法可以按列拆分數據幀 只需根據需要設置分組變量。


對於平衡分組, gl很方便(請參閱?gl )。 我們可以在上面使用gl(3, 4)代替rep(1:3, 4) ,這樣可以避免類型從“整數”轉換為“因數”。

通常,對“每n列”使用gl(ncol(Mydata) / n, n)n必須除以ncol(Mydata) )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM