[英]R: convert data.frame to data.frame with correct dimensions
我有一個名為exp_epis_2的data.frame,看起來像這樣:
> exp_epis_2[1,]
$V1
[1] 1 2 3 4 5
$V2
[1] 1 10 13 9 3
> exp_epis_2[2,]
$V1
[1] 1 2 3 4 5
$V2
[1] 1 7 6 9 6
我希望這樣看:
1 1
2 10
3 13
4 9
5 3
1 1
2 7
3 6
4 9
5 6
我非常確定這很簡單,但是我似乎找不到一個好的答案。
編輯:每個請求,這是dput(head(exp_epis_2))
的輸出:
dput(head(exp_epis_2))
structure(list(1:91, 1:115, 1:105, 1:98, 1:109, 1:110, c(1L,
10L, 13L, 9L, 3L, 12L, 7L, 6L, 10L, 11L, 7L, 8L, 6L, 8L, 7L,
4L, 7L, 6L, 8L, 3L, 6L, 6L, 4L, 6L, 6L, 4L, 5L, 1L, 3L, 3L, 2L,
3L, 3L, 2L, 2L, 1L, 0L, 2L, 2L, 2L, 4L, 3L, 1L, 3L, 1L, 2L, 0L,
0L, 2L, 2L, 1L, 2L, 3L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L,
1L, 1L, 2L, 0L, 0L, 1L, 1L, 2L, 1L, 0L, 1L, 0L, 2L, 2L, 1L, 1L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L), c(1L, 7L, 6L,
9L, 6L, 12L, 6L, 14L, 8L, 7L, 8L, 6L, 6L, 1L, 5L, 0L, 3L, 5L,
5L, 11L, 4L, 4L, 2L, 4L, 4L, 2L, 3L, 8L, 4L, 1L, 2L, 4L, 5L,
5L, 7L, 6L, 6L, 4L, 2L, 3L, 1L, 1L, 0L, 1L, 1L, 2L, 4L, 0L, 2L,
3L, 1L, 3L, 0L, 0L, 1L, 1L, 1L, 0L, 2L, 1L, 1L, 1L, 0L, 1L, 0L,
0L, 2L, 1L, 0L, 1L, 2L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L,
2L, 0L, 1L, 2L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 1L), c(1L, 9L, 10L, 7L, 10L, 8L, 11L, 6L, 11L, 6L, 7L, 8L,
5L, 4L, 10L, 3L, 7L, 3L, 4L, 9L, 1L, 4L, 2L, 4L, 4L, 5L, 8L,
5L, 4L, 2L, 5L, 3L, 3L, 4L, 1L, 2L, 3L, 4L, 3L, 1L, 1L, 0L, 1L,
1L, 2L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 3L, 2L, 5L, 0L, 2L,
2L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 2L, 0L, 0L, 1L, 1L, 0L, 1L,
0L, 1L, 0L, 0L, 0L, 1L, 2L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 2L, 0L, 1L, 0L, 1L, 2L, 1L, 2L, 0L, 1L), c(1L,
8L, 5L, 6L, 7L, 6L, 7L, 9L, 10L, 7L, 8L, 4L, 6L, 14L, 4L, 5L,
6L, 3L, 7L, 8L, 6L, 3L, 7L, 4L, 3L, 6L, 1L, 6L, 1L, 5L, 5L, 5L,
2L, 3L, 4L, 2L, 1L, 0L, 3L, 4L, 1L, 6L, 0L, 3L, 4L, 3L, 1L, 1L,
2L, 3L, 1L, 4L, 0L, 3L, 2L, 1L, 3L, 0L, 1L, 1L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 2L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 1L), c(1L, 10L, 10L, 8L, 10L, 10L, 10L, 10L, 10L, 10L, 6L,
8L, 3L, 10L, 5L, 7L, 6L, 6L, 5L, 5L, 5L, 3L, 2L, 5L, 5L, 4L,
2L, 3L, 1L, 5L, 3L, 2L, 4L, 5L, 0L, 3L, 2L, 3L, 7L, 5L, 2L, 0L,
1L, 4L, 4L, 1L, 1L, 2L, 3L, 1L, 1L, 0L, 1L, 0L, 2L, 0L, 2L, 2L,
1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 2L, 0L, 0L, 1L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 0L, 1L), c(1L, 6L, 10L, 17L, 9L, 12L, 7L, 15L, 5L, 10L, 15L,
5L, 9L, 6L, 8L, 8L, 6L, 0L, 4L, 7L, 3L, 2L, 5L, 1L, 4L, 6L, 4L,
2L, 4L, 0L, 5L, 2L, 2L, 2L, 2L, 0L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
1L, 0L, 2L, 3L, 3L, 0L, 0L, 0L, 3L, 1L, 2L, 0L, 1L, 0L, 0L, 0L,
0L, 1L, 1L, 1L, 0L, 2L, 1L, 1L, 1L, 0L, 0L, 0L, 2L, 2L, 0L, 2L,
0L, 2L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 2L,
0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 1L)), .Dim = c(6L, 2L), .Dimnames = list(NULL, c("V1",
"V2")))
也許像這樣更容易看到它。 在我的原始帖子中,我將每個列表截短為5個元素,但實際上exp_epis_2 [1,]有91個元素,而exp_epis_2 [2,]有115個元素
> exp_epis_2[1:2,]
V1 V2
[1,] Integer,91 Integer,91
[2,] Integer,115 Integer,115
編輯2:
好的,有一個改進:
cbind(exp_epis_2[1,][[1]], exp_epis_2[1,][[2]])
得到:
[,1] [,2]
[1,] 1 1
[2,] 2 10
[3,] 3 13
[4,] 4 9
[5,] 5 3
好的開始。 然后我嘗試了:
current = matrix()
for(i in 1:nrow(exp_epis_2)) {
rbind(current, cbind(exp_epis_2[i,][[1]], exp_epis_2[i,][[2]]))
}
但是我似乎無法迭代rbind ....
您仍然可以使用數據幀,但這取決於您如何加載它。 您將數據裝入2個數據集中,但是您希望將其裝入1個數據集中。另一種存儲方式是矩陣。
我想你想要的是
apply(exp_epis_2, 2, unlist)
但是,請注意exp_epis_2
是一個矩陣,而不是您似乎認為的數據幀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.