提问人:Seyma Kalay 提问时间:5/5/2023 更新时间:5/5/2023 访问量:38
如何在 R 中执行 vlookup
how to do vlookup in R
问:
我有一个如下所示的数据集
first_column <- c("value_1", "value_2", "value_3")
second_column <- c("keep", "remove", "remove")
main.df <- data.frame(first_column, second_column); main.df
first_column second_column
1 value_1 keep
2 value_2 remove
3 value_3 remove
first_column <- c("value_1", "value_2", "value_3")
column1 <- c("si", "no", "na")
column2 <- c(5, 2, 3)
vlookupdf <- data.frame(first_column, column1, column2); vlookupdf
first_column column1 column2
1 value_1 si 5
2 value_2 no 2
3 value_3 na 3
我想从 if is eather no 或 na 中删除行main.df
vlookupdf column1
预期答案来自main.df
first_column second_column
1 value_1 keep
提前非常感谢。
答:
2赞
Quinten
5/5/2023
#1
你可以根据你的条件来计算你的数据帧,如下所示:left_join
filter
library(dplyr)
main.df |>
left_join(vlookupdf, by = 'first_column') |>
filter(!(column1 %in% c("no", 'na'))) |>
select(first_column, second_column) # if necessary
#> first_column second_column
#> 1 value_1 keep
创建于 2023-05-05 使用 reprex v2.0.2
2赞
jpsmith
5/5/2023
#2
在基础 R 中,一种方法被否定:match
%in%
main.df[match(vlookupdf[!(vlookupdf$column1 %in% c("no", "na")), "first_column"], main.df$first_column),]
输出
# first_column second_column
# 1 value_1 keep
评论