如何将数据框添加到 R 中的数据框?
在本文中,我们将看到如何在 R 编程语言中在另一个数据帧的末尾添加数据帧。
方法一:使用rbind()方法
R 中的 rbind() 方法仅在两个输入数据帧都包含具有相似长度和名称的相同列时才起作用。数据帧可能有不同的行数。数据框列的类应该相互一致,否则会抛出错误。维护以下属性:
- 在函数调用期间,行按数据帧出现的顺序附加。
- 总列数相当于任何数据框中的列。
- 总行数相当于数据帧中行的总和。
rbind ( df1, df2)
示例:使用 rbind() 方法添加数据框
R
# declaring first dataframe
data_frame1 <- data.frame(col1 = c(2, 4, 6),
col2 = FALSE ,
col3 = LETTERS[1 : 3])
print ("First Dataframe")
print (data_frame1)
# declaring second dataframe
data_frame2 <- data.frame(col1 = c(1 , 3),
col2 = TRUE,
col3 = LETTERS[4 : 5])
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
rbind(data_frame1, data_frame2)
R
# loading the required library
library("plyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col4 = letters[1:4],
col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
rbind.fill(data_frame1, data_frame2)
R
# loading the required library
library("dplyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col5 = letters[1 : 4],
col6 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
bind_rows(data_frame1, data_frame2)
R
# loading the required library
library("dplyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col4 = letters[1 : 4],
col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
bind_rows(data_frame1,data_frame2)
输出:
方法二:使用plyr包
R 中的“plyr”包用于处理数据,包括其增强和操作。它可以通过以下命令加载并安装到工作空间中:
install.packages("plyr")
R 中的 rbind.fill() 方法是基础 R 中 rbind() 方法的增强,用于组合具有不同列的数据帧。列名是数字,输入数据框中的数字可能不同。相应数据帧的缺失列用 NA 填充。仅当输出数据帧存在于任何数据帧中时,它才包含一列。
rbind.fill( df1, df2)
以下属性由 rbind.fill() 方法维护:
- 数据帧按其在函数中的规范顺序附加。
- 总列数等于两个数据帧的列数之和。
- 总行数等于两个数据帧的行数之和。
- 列的出现按照函数调用期间数据帧参数声明的顺序。
- 在缺失的列中创建空单元格。
示例:使用 plyr 包添加数据框
电阻
# loading the required library
library("plyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col4 = letters[1:4],
col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
rbind.fill(data_frame1, data_frame2)
输出:
方法三:使用dplyr包
R 中的“dplyr”包用于处理数据,包括其增强和操作。它可以通过以下命令加载并安装到工作空间中:
install.packages("dplyr")
bind_rows() 方法用于组合具有不同列的数据帧。列名是数字,输入数据框中的数字可能不同。相应数据帧的缺失列用 NA 填充。仅当输出数据帧存在于任何数据帧中时,它才包含一列。
bind_rows(df1, df2)
这些属性类似于“plyr”包的工作方式。这种方法只是提供了对数据操作的增强。
示例:使用 dplyr 包添加数据框
电阻
# loading the required library
library("dplyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col5 = letters[1 : 4],
col6 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
bind_rows(data_frame1, data_frame2)
输出:
如果两个输入数据框中的任何列名称相同,则会遇到以下属性:
- 两个数据帧中公共列的类应该相同,否则会遇到错误。
在这种情况下,输出数据帧中的总列数应等于总输入列减去相交列。
示例:添加具有相同名称的一列的数据框。
电阻
# loading the required library
library("dplyr")
# declaring first dataframe
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 dataframe
data_frame2 <- data.frame(col4 = letters[1 : 4],
col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
print ("Combining Dataframe")
# binding dataframes
bind_rows(data_frame1,data_frame2)
输出: