2013-02-10 3 views
3

l = list()이라고 말한 다음 l[[27]] = 100을 입력하면 NULL 값을 가진 26 개의 다른 항목이 만들어집니다. 이것을 피할 수있는 방법이 있습니까? 예를 들어새 요소를 많이 만들지 않고 R의 목록에 할당하는 방법은 무엇입니까?

나는 실행하는 경우 : l <- list(); for (i in c(4,7,1)) { l[[i]] <- i^1 }

은 내가 지정하지 않은 모든 것들에 대한 1에서 7까지의 항목 및 NULL 값 목록을 creat에 있습니다. 이러한 가짜 항목을 피하는 방법은 무엇입니까? 인덱스에 대한

답변

8

사용 문자 값 :

l <- list(); for (i in c(4,7,1)) { l[[as.character(i)]] <- i^1 } 

> l 
$`4` 
[1] 4 

$`7` 
[1] 7 

$`1` 
[1] 1 
0
당신은 목록에 추가 할 수

:

l <- list(); for (i in c(4,7,1)) { l <- append(l, i^1) } 
4

가 나는 for 루프를 방지하고 lapply 사용합니다 :

> x <- c(4, 7, 1) 
> setNames(lapply(x, `^`, 1), x) 
$`4` 
[1] 4 

$`7` 
[1] 7 

$`1` 
[1] 1 
+0

조쉬 댓글을 달았습니다 'setNames (as.list (x^1), x)'도 할 수있다. 예, 여기서도 효과가 있으며 언급할만한 가치가 있습니다. 감사합니다. 내 방식은 벡터화되지 않은 함수를 적용 할 수 있다는 점에서보다 일반적입니다. – flodel

+0

동의 한 이유는 내 검색어를 삭제 한 이유입니다. 좀 더 일반적인 상황을 인식하고 있음을 깨달았습니다. –

관련 문제