能否基于一个R DataFrame过滤另一个的行?数据处理需求问询
解决方法
基础R实现
先把df_link中from和to列的所有id合并去重,再筛选df_node里id在这个集合中的行:
# 获取所有有效id(出现在df_link的from或to列) valid_ids <- unique(c(df_link$from, df_link$to)) # 筛选符合条件的行 df_node_filtered <- df_node[df_node$id %in% valid_ids, ]
dplyr(tidyverse)实现
如果你习惯用tidyverse工具链,可以用filter函数快速完成筛选:
library(dplyr) df_node_filtered <- df_node %>% filter(id %in% unique(c(df_link$from, df_link$to)))
结果说明
处理后df_node_filtered会保留id为a、b、d、f、h、i的行,删除未出现在df_link关联关系中的c、e、g对应的行。
内容的提问来源于stack exchange,提问作者nando_5g
相关产品推荐
相关产品推荐

