如何在R中创建具有一列或多列作为列表的数据框?

创建一个以列为列表的数据框架并不困难,但是我们需要对列表使用I,以使列表元素不会作为单独的列工作。在这里,您会发现创建列表的常用方法,如果我们想在数据中插入该列表,则该方法是不正确的,最后还会提到正确的方法。

错误的方式-

示例

> x1<-1:20
> x2<-list(c(1,1),c(2,2),c(3,3),c(4,4),c(5,5),c(6,6),c(7,7),c(8,8),c(9,9),
+ c(10,10),c(11,11),c(12,12),c(13,13),c(14,14),c(15,15),c(16,16),c(17,17),
+ c(18,18),c(19,19),c(20,20))
> df<-data.frame(x1,x2)
> df
     x1 c.1..1. c.2..2. c.3..3. c.4..4. c.5..5. c.6..6. c.7..7. c.8..8. c.9..9.
1     1    1       2       3       4       5       6       7       8       9
2     2    1       2       3       4       5       6       7       8       9
3     3    1       2       3       4       5       6       7       8       9
4     4    1       2       3       4       5       6       7       8       9
5     5    1       2       3       4       5       6       7       8       9
6     6    1       2       3       4       5       6       7       8       9
7     7    1       2       3       4       5       6       7       8       9
8     8    1       2       3       4       5       6       7       8       9
9     9    1       2       3       4       5       6       7       8       9
10    10   1       2       3       4       5       6       7       8       9
11    11   1       2       3       4       5       6       7       8       9
12    12   1       2       3       4       5       6       7       8       9
13    13   1       2       3       4       5       6       7       8       9
14    14   1       2       3       4       5       6       7       8       9
15    15   1       2       3       4       5       6       7       8       9
16    16   1       2       3       4       5       6       7       8       9
17    17   1       2       3       4       5       6       7       8       9
18    18   1       2       3       4       5       6       7       8       9
19    19   1       2       3       4       5       6       7       8       9
20    20   1       2       3       4       5       6       7       8       9
    c.10..10. c.11..11. c.12..12. c.13..13. c.14..14. c.15..15. c.16..16.
1     10        11        12        13        14        15        16
2     10        11        12        13        14        15        16
3     10        11        12        13        14        15        16
4     10        11        12        13        14        15        16
5     10        11        12        13        14        15        16
6     10        11        12        13        14        15        16
7     10        11        12        13        14        15        16
8     10        11        12        13        14        15        16
9     10        11        12        13        14        15        16
10    10        11        12        13        14        15        16
11    10        11        12        13        14        15        16
12    10        11        12        13        14        15        16
13    10        11        12        13        14        15        16
14    10        11        12        13        14        15        16
15    10        11        12        13        14        15        16
16    10        11        12        13        14        15        16
17    10        11        12        13        14        15        16
18    10        11        12        13        14        15        16
19    10        11        12        13        14        15        16
20    10        11        12        13        14        15        16
  c.17..17. c.18..18. c.19..19. c.20..20.
1   17        18        19        20
2   17        18        19        20
3   17        18        19        20
4   17        18        19        20
5   17        18        19        20
6   17        18        19        20
7   17        18        19        20
8   17        18        19        20
9   17        18        19        20
10  17        18        19        20
11  17        18        19        20
12  17        18        19        20
13  17        18        19        20
14  17        18        19        20
15  17        18        19        20
16  17        18        19        20
17  17        18        19        20
18  17        18        19        20
19  17        18        19        20
20  17        18        19        20

正确的方法-

示例

> x1<-1:20
> x2<-I(list(c(1,1),c(2,2),c(3,3),c(4,4),c(5,5),c(6,6),c(7,7),c(8,8),c(9,9),
+ c(10,10),c(11,11),c(12,12),c(13,13),c(14,14),c(15,15),c(16,16),c(17,17),
+ c(18,18),c(19,19),c(20,20)))
> df<-data.frame(x1,x2)
> head(df,20)
x1 x2
1 1 1, 1
2 2 2, 2
3 3 3, 3
4 4 4, 4
5 5 5, 5
6 6 6, 6
7 7 7, 7
8 8 8, 8
9 9 9, 9
10 10 10, 10
11 11 11, 11
12 12 12, 12
13 13 13, 13
14 14 14, 14
15 15 15, 15
16 16 16, 16
17 17 17, 17
18 18 18, 18
19 19 19, 19
20 20 20, 20