1
我有四列的數據幀,並希望將其與2列的變換的數據幀,但序列事項(所以堆棧或不具有額外的排序合併不是一個選項)更優雅方法的嵌入行
X1 Y1 X2 Y2
1 2 3 4
5 6 7 8
要
X1 Y1
1 2
3 4
5 6
7 8
我的醜版本:
nrow = 4
# Test data set
d = setNames(data.frame(matrix(sample(1:(nrow*4)), nrow=nrow)),
c("X1","Y1","X2","Y2"))d
# Create empty data frame
d1 = data.frame(matrix(rep(NA, nrow*2*2), nrow = nrow*2))
# Elements 1, 3, 5...
d1[seq(1, nrow*2, by = 2),] = d[,1:2]
# Elements 2, 4, 6...
d1[seq(2, nrow*2, by = 2),] = d[,3:4]
沒必要基地R.
後來補充:我剛剛發現:
data.frame(matrix(as.vector(t(as.matrix(d))), nrow = 2*nrow, byrow = TRUE))
但像@akrun有它
由@alistaire提到的職位的替代解決方案略微簡化版本,例如使用reshape
看起來,顯然不比我的原始版本更優雅。
我沒有找到那個,但那裏提出的解決方案比我的原始解決方案要複雜得多。我試圖避免關鍵詞「合併」,並使用我的DNA研究過去的「插入」。 –