我有两个df
s(df
,df2
)。
虽然df
没有列名,但df2
却有。
df2
是空的:
set.seed(1)
df <- data.frame(
ID = 1:5,
DOG = replicate(5, rbinom(1, 1, 0.5)),
CAT = replicate(5, rbinom(1, 1, 0.5)),
FISH = replicate(5, rbinom(1, 1, 0.5)))
df2 <- data.frame(matrix(, nrow=0, ncol=7))
names(df2) <- c("DOG", "CAT", "FISH", "CRANE", "PIG", "SHARK", "DEER")
我想“合并”两个数据帧而不将任何内容匹配在一起。我基本上只希望df
包含df2
中的所有列,但NA
- 编辑。
期望的输出:
ID DOG CAT FISH CRANE PIG SHARK DEER
1 0 1 0 NA NA NA NA
2 0 1 0 NA NA NA NA
3 1 1 1 NA NA NA NA
4 1 1 0 NA NA NA NA
5 0 0 1 NA NA NA NA
答案 0 :(得分:4)
我们可以使用bind_rows
library(dplyr)
bind_rows(df2, df)
# DOG CAT FISH CRANE PIG SHARK DEER
#1 0 1 0 NA NA NA NA
#2 0 1 0 NA NA NA NA
#3 1 1 1 NA NA NA NA
#4 1 1 0 NA NA NA NA
#5 0 0 1 NA NA NA NA
答案 1 :(得分:1)
基础套餐:
$("#uib-justgage-3").attr('data-gauge','new value')
输出:
merge(df, df2, all = TRUE, sort = FALSE)
保留列的顺序:
DOG CAT FISH ID CRANE PIG SHARK DEER
1 0 1 0 1 NA NA NA NA
2 0 1 0 2 NA NA NA NA
3 1 1 1 3 NA NA NA NA
4 1 1 0 4 NA NA NA NA
5 0 0 1 5 NA NA NA NA
输出:
merge(df, df2, all =TRUE, sort = FALSE)[, union(names(df), names(df2))]
使用 ID DOG CAT FISH CRANE PIG SHARK DEER
1 1 0 1 0 NA NA NA NA
2 2 0 1 0 NA NA NA NA
3 3 1 1 1 NA NA NA NA
4 4 1 1 0 NA NA NA NA
5 5 0 0 1 NA NA NA NA
:
sqldf
输出:
library(sqldf)
sqldf("SELECT * FROM df
LEFT JOIN df2
USING(DOG, CAT, FISH)")