Предполагая, что эти data.table
объекты, и предполагая, что строки столбцов 'sigma' в 'A' должны быть все меньше, чем порог 2.
library(data.table)
nm1 <- grep("sigma", names(A), value = TRUE)
i1 <- setDT(A)[, Reduce(`&`, lapply(.SD, `<`, 2)), .SDcols = nm1]
setDT(B)[i1]
Обновление
На основании ожидаемой выработки
nm2 <- grep("sigma", names(A))
B[, (nm2) := Map(function(x, y) replace(x, y >= 2, NA_character_),
.SD, A[, nm2, with = FALSE]), .SDcols = nm2][]
# year location location_NN_1 location_NN_2 location_NN_3
#1: 2076 43.59375_-116.78125 41.15625_-90.65625 41.21875_-90.65625 41.15625_-90.65625
#2: 2077 43.59375_-116.78125 43.34375_-78.15625 43.34375_-78.21875 43.28125_-78.15625
#3: 2078 43.59375_-116.78125 41.34375_-90.78125 41.21875_-90.65625 41.53125_-73.96875
#4: 2079 43.59375_-116.78125 43.53125_-116.78125 41.34375_-90.78125 <NA>
#5: 2080 43.59375_-116.78125 <NA> <NA> <NA>
Данные
A <- structure(list(year = 2076:2080, location = c("43.59375_-116.78125",
"43.59375_-116.78125", "43.59375_-116.78125", "43.59375_-116.78125",
"43.59375_-116.78125"), sigma_NN_1 = c(1.4681173, 1.3798515,
0.7934367, 1.8235574, 2.5560329), sigma_NN_2 = c(1.664289, 1.550524,
1.064248, 1.991018, 2.578093), sigma_NN_3 = c(1.735974, 1.551269,
1.177981, 2.288402, 2.589334)), class = "data.frame", row.names = c(NA,
-5L))
B <- structure(list(year = 2076:2080, location = c("43.59375_-116.78125",
"43.59375_-116.78125", "43.59375_-116.78125", "43.59375_-116.78125",
"43.59375_-116.78125"), location_NN_1 = c("41.15625_-90.65625",
"43.34375_-78.15625", "41.34375_-90.78125", "43.53125_-116.78125",
"41.34375_-90.78125"), location_NN_2 = c("41.21875_-90.65625",
"43.34375_-78.21875", "41.21875_-90.65625", "41.34375_-90.78125",
"41.96875_-86.21875"), location_NN_3 = c("41.15625_-90.65625",
"43.28125_-78.15625", "41.53125_-73.96875", "41.71875_-74.15625",
"41.21875_-90.65625")), class = "data.frame", row.names = c(NA,
-5L))