R语言如何基于另一数据框的列值筛选目标数据框的指定列
解决方案
你原有代码返回空表的原因是函数误用:filter()是dplyr中用于按条件筛选行观测的函数,你需要的按列名选择字段需要用select()函数实现。
方案1:dplyr(适配原有管道写法)
首先加载dplyr包:
library(dplyr)
实现代码:
df3 <- df %>% # 固定保留AA列,再按df2$E存储的列名匹配选择对应列 select(AA, all_of(df2$E))
说明:all_of()用于安全传入外部字符向量作为列名,避免环境中存在同名对象时引发的选择歧义。
方案2:base R实现(无需加载第三方包)
df3 <- df[, c("AA", df2$E)]
两种方案运行后得到的df3完全符合你给出的目标结构。
内容的提问来源于stack exchange,提问作者vcat
相关产品推荐
相关产品推荐

