簡體   English   中英

R:將data.frame轉換為具有正確尺寸的data.frame

[英]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.

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