保持两个数据帧';自身值仅在R中的交点处替换
假设我有以下两个数据帧,我想使用保持两个数据帧';自身值仅在R中的交点处替换,r,dataframe,R,Dataframe,假设我有以下两个数据帧,我想使用merge函数合并它们 > x <- data.frame(id=c("a", "b", "c"), type=c("good", "ok", "not-ok")) > y <- data.frame(id=c("b", "d"), type=c("ok", "good"), kind=c("A", "B")) > merge(x, y, by.x="id", by.y="id", all=TRUE) id type.x type
merge
函数合并它们
> x <- data.frame(id=c("a", "b", "c"), type=c("good", "ok", "not-ok"))
> y <- data.frame(id=c("b", "d"), type=c("ok", "good"), kind=c("A", "B"))
> merge(x, y, by.x="id", by.y="id", all=TRUE)
id type.x type.y kind
1 a good <NA> <NA>
2 b ok ok A
3 c not-ok <NA> <NA>
4 d <NA> good B
>x-y合并(x,y,by.x=“id”,by.y=“id”,all=TRUE)
id类型.x类型.y类型
a好的
好的好的
3 c不好
好的
我想要的是
id type kind
1 a good <NA>
2 b ok A
3 c not-ok <NA>
4 d good B
id类型类型
a好的
b好的
3 c不好
好的
请问,有没有一个很好的方法可以在R做这件事?谢谢。在Base R中:
merge(x, y, all = TRUE)
使用tidyverse
:
首先,在创建数据帧时添加以下内容:
x <- data.frame(id=c("a", "b", "c"), type=c("good", "ok", "not-ok"),
stringsAsFactors = FALSE)
y <- data.frame(id=c("b", "d"), type=c("ok", "good"), kind=c("A", "B"),
stringsAsFactors = FALSE)
根据@markus的评论进行编辑。以R为基础:
merge(x, y, all = TRUE)
使用tidyverse
:
首先,在创建数据帧时添加以下内容:
x <- data.frame(id=c("a", "b", "c"), type=c("good", "ok", "not-ok"),
stringsAsFactors = FALSE)
y <- data.frame(id=c("b", "d"), type=c("ok", "good"), kind=c("A", "B"),
stringsAsFactors = FALSE)
根据@markus的评论编辑。简单
library(dplyr)
x %>% full_join(y, by = c("id", "type"))
id type kind
1 a good <NA>
2 b ok A
3 c not-ok <NA>
4 d good B
库(dplyr)
x%>%full_join(y,by=c(“id”,“type”))
id类型种类
a好的
b好的
3 c不好
好的
简单
库(dplyr)
x%>%full_join(y,by=c(“id”,“type”))
id类型种类
a好的
b好的
3 c不好
好的
您的解决方案有什么问题?nice是什么意思?请尝试merge(x,y,all=TRUE)
您的解决方案有什么问题?你说尼斯是什么意思?试试merge(x,y,all=TRUE)