如何在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