合并两个数据帧 - ID 并集,"ANY" 超过值
Merging two dataframes - union of IDs, "ANY" over values
我有两个 tables A
和 B
,下面是 3 columns/variables:
id
:唯一的患者标识符(字符字符串)
cancer
:是否存在癌症的二元变量(0
=否,1
=是)
hiv
:指示是否存在 HIV 的二进制变量(0
=否,1
=是)
两个 table 可能有不同的 id
组,但它们有相同的 3 列。
我想做的是合并它们,使合并后的 table 包含以下内容:
id
:来自 A
和 B
(即联合)的整套唯一患者标识符
cancer
:1
如果患者在 A
或 B
中有 cancer=1
。 0
否则,包括丢失的情况。
hiv
:与 cancer
相同,除了 hiv
我不确定执行此操作的最佳方法是什么。 Base R、tidyverse 或 data.table 例子都是 acceptable.
我不知道你是否想 join
他们。我认为,对于相同的列,您可能想要附加它们:
library(tidyverse)
A %>%
bind_rows(B) %>%
group_by(id) %>%
summarise(cancer = max(cancer, na.rm = T),
hiv = max(cancer, na.rm = T) %>%
ungroup()
我有两个 tables A
和 B
,下面是 3 columns/variables:
id
:唯一的患者标识符(字符字符串)cancer
:是否存在癌症的二元变量(0
=否,1
=是)hiv
:指示是否存在 HIV 的二进制变量(0
=否,1
=是)
两个 table 可能有不同的 id
组,但它们有相同的 3 列。
我想做的是合并它们,使合并后的 table 包含以下内容:
id
:来自A
和B
(即联合)的整套唯一患者标识符cancer
:1
如果患者在A
或B
中有cancer=1
。0
否则,包括丢失的情况。hiv
:与cancer
相同,除了hiv
我不确定执行此操作的最佳方法是什么。 Base R、tidyverse 或 data.table 例子都是 acceptable.
我不知道你是否想 join
他们。我认为,对于相同的列,您可能想要附加它们:
library(tidyverse)
A %>%
bind_rows(B) %>%
group_by(id) %>%
summarise(cancer = max(cancer, na.rm = T),
hiv = max(cancer, na.rm = T) %>%
ungroup()