2014-04-09 4 views
1

나는 다음 예제라는 이름의 목록이 있습니다 그래서 지금은 값을 변경이름이있는 경우에만 명명 된 목록에 값을 추가하는 방법은 무엇입니까?

> 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 

을 좀하고 싶습니다?

답변

4

어쩌면 이것은 당신을 위해 작동합니다 :

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