R:将data.frame转换为具有正确尺寸

时间:2017-03-09 21:22:10

标签: r

我有一个名为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]]))
}

但我似乎无法反复进行争吵......

2 个答案:

答案 0 :(得分:0)

您仍然可以使用数据框,但这取决于您如何加载它。您将数据加载到数据框中,但需要加载到1中。另一种以您希望的方式存储它的方法可能是矩阵。

答案 1 :(得分:0)

我认为你想要的是

apply(exp_epis_2, 2, unlist)

但是,请注意exp_epis_2是一个矩阵,而不是您认为的数据框架。