我正在尝试合并两个数据集,如此
V1
Berry
作为第一个数据集和
V4 V6 V7 V1
Temp Temp Temp Temp
制作
V4 V6 V7 V1
Temp Temp Temp Temp
NA NA NA Berry
我尝试过使用
test2<-merge(Session1t, temp2, by=temp1, all = TRUE)
其中temp1是存储为值的列名V1。我遇到的问题是我无法通过=“V1”明确说明,因为这是一个循环内部,每个迭代的列名称都会发生变化,我不确定如何有效地合并这两个数据集。我得到的最接近的是合并它们会创建两个V1列,但这显然不是我可以使用的东西。
答案 0 :(得分:0)
我们可以使用dplyr包中的bind_rows
函数。
# Create example data frame D1
D1 <- read.table(text = "V1
Berry",
header = TRUE, stringsAsFactors = FALSE)
# Create example data frame D2
D2 <- read.table(text = "V4 V6 V7 V1
Temp Temp Temp Temp",
header = TRUE, stringsAsFactors = FALSE)
# Load package
library(dplyr)
# Combine two data frames
D3 <- bind_rows(D2, D1)
D3
# V4 V6 V7 V1
# 1 Temp Temp Temp Temp
# 2 <NA> <NA> <NA> Berry
我们也可以使用基础R中的rbind
函数,它类似于bind_rows
,但我们需要创建不在D1
或D2
中的列NA
1}}首先。
# Get columns not match
NACol <- setdiff(names(D2), names(D1))
# Create columns based on NACol with NA
for (i in NACol){
D1[[i]] <- NA
}
# Combine tow data frames
D3 <- rbind(D2, D1)
D3
# V4 V6 V7 V1
# 1 Temp Temp Temp Temp
# 2 <NA> <NA> <NA> Berry