【发布时间】:2021-05-11 21:38:28
【问题描述】:
我有 2 个数据框。说df_1 和df_2。首先,我匹配这两个数据帧之间的行。在创建了一些匹配之后,我想将df_1 分成两个新的数据框。一个将包含所有信息 + 50% 匹配信息,第二个将包含其余 50% 匹配信息。例如,
df_1
query target new_ssp
1 ID_1 ID_2 0.50
2 ID_3 ID_2 0.90
3 ID_3 ID_4 0.80
4 ID_40 ID_50 0.70
5 ID_15 ID_31 0.50
6 ID_1 ID_6 0.09
df_2
query target ssp
1 ID_1 ID_2 0.50
2 ID_2 ID_3 0.90
3 ID_3 ID_4 0.80
4 ID_4 ID_5 0.70
5 ID_5 ID_3 0.50
6 ID_6 ID_1 0.09
他们之间的匹配(common)使用common <- inner_join(df_1, df_2)
query target new_ssp ssp
1 ID_1 ID_2 0.5 0.5
2 ID_3 ID_4 0.8 0.8
我想制作另一个 df_3(删除了 50% 与 df_1 和 common 匹配的数据)。删除了df_1 的第 3 行。
query target new_ssp
1 ID_1 ID_2 0.50
2 ID_3 ID_2 0.90
3 ID_40 ID_50 0.70
4 ID_15 ID_31 0.50
5 ID_1 ID_6 0.09
和df_4(根据df_1 和common 删除后匹配的其余部分)。删除了common 的第 2 行。
query target new_ssp ssp
1 ID_1 ID_2 0.5 0.5
如何制作这两个新数据框?
可重复的数据
query <- c("ID_1", "ID_3", "ID_3", "ID_40", "ID_15", "ID_1")
target <- c("ID_2", "ID_2", "ID_4", "ID_50", "ID_31", "ID_6")
new_ssp <- c(0.5, 0.9, 0.8, 0.7, 0.5, 0.09)
df_1 <- data.frame(query, target, new_ssp, stringsAsFactors = FALSE)
query <- c("ID_1", "ID_2", "ID_3", "ID_4", "ID_5", "ID_6")
target <- c("ID_2", "ID_3", "ID_4", "ID_5", "ID_3", "ID_1")
ssp <- c(0.5, 0.9, 0.8, 0.7, 0.5, 0.09)
df_2 <- data.frame(query, target, ssp, stringsAsFactors = FALSE)
【问题讨论】:
-
你想单独创建
df_4? -
没有
df_3和df_4