Как добавить значения в именованный список только при наличии имени?
У меня есть следующий пример с именем list:
> named_list <- c(0,0,0)
> names(named_list) <- c('a','b','c')
> named_list
a b c
0 0 0
И у меня есть вектор со значениями, которые я хочу изменить
> set_to_1 <- c('b','c','d')
Так что теперь я меняю значения
> named_list[set_to_1] <- 1
И я получаю
> named_list
a b c d
0 1 1 1
Тем не менее, я хотел бы получить
> named_list
a b c
0 1 1
Как я могу это сделать?
1 ответ
Решение
Может быть, это должно работать для вас:
named_list[names(named_list) %in% set_to_1] <- 1
named_list
# a b c
# 0 1 1
Или это:
named_list[intersect(names(named_list), set_to_1)] <- 1