如何合并两个相同大小的列表以在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