我有两个元素(dplyr 0.7.4和R 3.4.1)我需要做以下事情
对于A中的每个变量b,我需要检查b是否等于t c中的任何变量c,如果是,则指定变量d,如果不是指定NA。
Tibble A:
b
var1_b
var2_b
...
Tibble C
c,d
var1_c, var1_d
var2_c, var2_d
...
答案 0 :(得分:1)
这应该有效
set.seed(1)
A <- data.frame(b = sample(1:40, 20, replace=TRUE))
C <- data.frame(c = sample(1:20, 40, replace=TRUE), d = 1:40)
myfun <- function(A, B) {
sapply(A$b, function(i) B$d[match(i, B$c)])
}
A %>%
mutate(new = myfun(A,C))
# b new
# 1 11 25
# 2 15 19
# 3 23 NA
# 4 37 NA
# 5 9 20