R语言 结合两个具有不同列的数据框架

R语言 结合两个具有不同列的数据框架

在这篇文章中,我们将讨论如何在R编程语言中结合两个不同列的数据框架。

方法1:使用plyr包

R语言中的 “plyr “包是用来处理数据的,包括其增强和操作。它可以通过以下命令加载并安装到工作空间。

install.packages(“plyr”)

R中的rbind.fill()方法是基础R中rbind()方法的增强版,用于组合具有不同列的数据框架。在输入的数据框架中,列名和编号可能是不同的。相应的数据框架中的缺失列用NA填充。只有当某一列出现在任何一个数据框中时,输出数据框才包含该列。

语法

rbind.fill( df1, df2)

以下属性由rbind.fill()方法维护。

  • 数据框是按照函数中指定的顺序附加的。
  • 列的总数相当于两个数据框的列数之和。
  • 行的总数相当于两个数据框的行数之和。
  • 列的出现是按照函数调用时数据框架参数声明的顺序。
  • 在缺少的列中会创建空单元。

例子

# loading the required library
library("plyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = LETTERS[1:3])
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col4 = letters[1:4], 
                          col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
rbind.fill(data_frame1,data_frame2)

输出

[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   A
2    4    6   10   B
3    6    8   12   C
[1] "Second Dataframe"
col4 col5
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   20
2    4    6   10   16
3    6    8   12   14
[1] "Second Dataframe"
col5 col6
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
col1 col2 col3 col4 col5
1    2    4    8   A  NA
2    4    6   10   B  NA
3    6    8   12   C  NA
4   NA   NA   NA   a  TRUE
5   NA   NA   NA   b  TRUE
6   NA   NA   NA   c  TRUE
7   NA   NA   NA   d  TRUE

方法2:使用dplyr包

R语言中的 “dplyr “包是用来处理数据的,包括对其进行增强和操作。它可以通过以下命令加载并安装到工作空间中。

install.packages("dplyr")

bind_rows()方法是用来组合具有不同列的数据框架。在输入的数据框架中,列的名称和数量可能是不同的。相应的数据框架中缺失的列用NA来填充。只有当某一列出现在任何一个数据框中时,输出数据框才会包含该列。

语法

bind_rows(df1, df2)

以下属性由bind_rows()方法维护。

  • 数据框是按照函数中的说明顺序添加的。
  • 列的总数等同于两个数据框架中列数的总和。
  • 行的总数相当于两个数据框的行数之和。

例子

# loading the required library
library("dplyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = c(20,16,14))
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col5 = letters[1:4], 
                          col6 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
bind_rows(data_frame1,data_frame2)

输出

[1] "First Dataframe" 
col1 col2 col3 col4 
1    2    4    8   20 
2    4    6   10   16 
3    6    8   12   14 
[1] "Second Dataframe" 
col5 col6 
1    a TRUE 
2    b TRUE
 3    c TRUE 
4    d TRUE 
[1] "Combining Dataframe" 
col1 col2 col3 col4 col5 col6 
1    2    4    8   20 <NA>   NA 
2    4    6   10   16 <NA>   NA 
3    6    8   12   14 <NA>   NA 
4   NA   NA   NA   NA    a TRUE 
5   NA   NA   NA   NA    b TRUE 
6   NA   NA   NA   NA    c TRUE 
7   NA   NA   NA   NA    d TRUE

如果任何一个列名在两个输入数据框架中都是相同的,那么就会遇到以下属性。

  • 公共列的类别在两个数据框架中应该是相同的,否则会遇到一个错误。
  • 在这种情况下,输出数据框中的列的总数应相当于输入列总数减去相交的列。

例子

# loading the required library
library("dplyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = LETTERS[1:3])
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col4 = letters[1:4], 
                          col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
bind_rows(data_frame1,data_frame2)

输出

[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   A
2    4    6   10   B
3    6    8   12   C
[1] "Second Dataframe"
col4 col5
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
[1] "First Dataframe" 
col1 col2 col3 col4 
1    2    4    8   20 
2    4    6   10   16 
3    6    8   12   14 
[1] "Second Dataframe" 
col5 col6 
1    a TRUE 
2    b TRUE
 3    c TRUE 
4    d TRUE 
[1] "Combining Dataframe" 
col1 col2 col3 col4 col5 
1    2    4    8   A  NA 
2    4    6   10   B  NA 
3    6    8   12   C  NA 
4   NA   NA   NA   a  TRUE 
5   NA   NA   NA   b  TRUE 
6   NA   NA   NA   c  TRUE 
7   NA   NA   NA   d  TRUE

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程