如何使用列表元素在 R 中创建数据框?


如果一个列表与其我们要创建数据框的每个向量的长度(而不是子元素的长度)相同,则我们首先需要创建向量的 data frame,然后我们可以轻松地将列表添加到数据框中。但是,如果我们有列表和其他向量,则无法创建 data frame,因为 data.frame 函数会分别读取列表的每个值。

示例

实时演示

> df1<-data.frame(x=rpois(20,5),y=rpois(20,1))
> df1

输出

   x y
1  6 1
2  8 1
3  6 2
4  8 1
5  5 1
6  3 1
7  6 1
8  7 1
9  7 1
10 7 2
11 5 0
12 5 2
13 2 2
14 4 0
15 2 1
16 3 1
17 4 0
18 6 4
19 6 2
20 4 1

示例

> df1$z<-list(1:3,4:5,6:10,12:15,16:17,18:20,21:22,23:25,26:27,28:30,31:35,36:38,39:42,43:45,46:48,49:55,56:60,61:62,63:65,66:70)
> df1

输出

  x y z
1 6 1            1, 2, 3
2 8 1            4, 5
3 6 2      6, 7, 8, 9, 10
4 8 1      12, 13, 14, 15
5 5 1          16, 17
6 3 1          18, 19, 20
7 6 1          21, 22
8 7 1          23, 24, 25
9 7 1          26, 27
10 7 2         28, 29, 30
11 5 0     31, 32, 33, 34, 35
12 5 2         36, 37, 38
13 2 2         39, 40, 41, 42
14 4 0         43, 44, 45
15 2 1         46, 47, 48
16 3 1 49, 50, 51, 52, 53, 54, 55
17 4 0     56, 57, 58, 59, 60
18 6 4         61, 62
19 6 2     63, 64, 65
20 4 1     66, 67, 68, 69, 70

我们再来看一个示例

示例

> df2<-data.frame(F1=sample(LETTERS[1:4],20,replace=TRUE),F2=sample(LETTERS[21:26],20,replace=TRUE))
> df2

输出

F1 F2
1 C W
2 B Z
3 A V
4 D W
5 D V
6 A X
7 C X
8 D Y
9 C Y
10 B V
11 D X
12 B W
13 D V
14 A U
15 A X
16 C X
17 C Z
18 B X
19 C Z
20 A V

示例

> df2$F3<-list(rep(c("A","B")))
> df2

输出

  F1 F2 F3
1 C W A, B
2 B Z A, B
3 A V A, B
4 D W A, B
5 D V A, B
6 A X A, B
7 C X A, B
8 D Y A, B
9 C Y A, B
10 B V A, B
11 D X A, B
12 B W A, B
13 D V A, B
14 A U A, B
15 A X A, B
16 C X A, B
17 C Z A, B
18 B X A, B
19 C Z A, B
20 A V A, B

更新于:2020-11-21

531 次浏览

开启您的职业

通过完成课程获得认证

立即开始
广告