如何在R中组合两个相同大小的列表以创建数据框?


如果我们有两个相同大小的列表,我们可以使用这些列表创建一个数据框,这可以通过expand.grid函数轻松完成。expand.grid函数根据提供的列表、向量或因子的所有组合创建数据框。例如,如果我们定义了两个列表List1和List2,则可以使用代码expand.grid(List1,List2)创建一个数据框。

示例

 在线演示

考虑以下列表:

List1<-as.list(sample(LETTERS[1:5],5,replace=TRUE))
List1

输出

[[1]]
[1] "C"
[[2]]
[1] "D"
[[3]]
[1] "E"
[[4]]
[1] "D"
[[5]]
[1] "D"

示例

 在线演示

List2<-as.list(sample(LETTERS[6:10],5,replace=TRUE))
List2

输出

[[1]]
[1] "I"
[[2]]
[1] "J"
[[3]]
[1] "F"
[[4]]
[1] "I"
[[5]]
[1] "F"

使用List1和List2创建数据框:

示例

df1<-expand.grid(List1,List2)
df1

输出

  Var1 Var2
1  C I
2  D I
3  E I
4  D I
5  D I
6  C J
7  D J
8  E J
9  D J
10 D J
11 C F
12 D F
13 E F
14 D F
15 D F
16 C I
17 D I
18 E I
19 D I
20 D I
21 C F
22 D F
23 E F
24 D F
25 D F

让我们来看另一个例子:

示例

 在线演示

List3<-as.list(c("India","China","USA","France","Germany"))
List3

输出

[[1]]
[1] "India"
[[2]]
[1] "China"
[[3]]
[1] "USA"
[[4]]
[1] "France"
[[5]]
[1] "Germany"

示例

 在线演示

List4<-as.list(1:4)
List4

输出

[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4

使用List3和List4创建数据框:

示例

df2<-expand.grid(List3,List4)
df2

输出

Var1 Var2
1 India 1
2 China 1
3 USA 1
4 France 1
5 Germany 1
6 India 2
7 China 2
8 USA 2
9 France 2
10 Germany 2
11 India 3
12 China 3
13 USA 3
14 France 3
15 Germany 3
16 India 4
17 China 4
18 USA 4
19 France 4
20 Germany 4

更新于:2020年10月17日

963 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.