2015-02-01 3 views
1

이 질문은 an earlier one과 관련이 있습니다 (대답 c() 기능 사용)은 정확히 이 아니며은 나를 위해 일합니다.R에있는 벡터 목록에 벡터를 추가하는 방법은 무엇입니까?

먼저 벡터 목록을 만들고 추가 벡터를 만듭니다. (이전의 질문에 대한 답변에서 제안) 사용 c(a_list, junk), 나는 내가 무엇을 얻을 완전히 다른 답변을 얻을 경우

a_list <- lapply(mtcars, as.integer) 
junk <- c(1:length(a_list[[1]])) 

지금, 나는 a_list[["junk"]] <- junk (후자는 원하는 결과를 산출)라고합니다. 이전 접근 방식으로 추가 된 내용은 as.list(junk) 인 것으로 보입니다.

c()을 사용하여 junk을 어떻게 추가 할 수 있습니까? as.list(junk)의 결과로 변환되지 않고 어떻게됩니까?

답변

2

이런 식으로 list()을 사용하십시오 : c(a_list, junk=list(junk)).

위의 문제가되는 시나리오에서 정확히 무엇을 추가하려고했는지 (내 질문을 공식화하기 위해) listas.list은 매우 다른 일을한다는 것을 깨달았습니다. 정크를 단일 요소 목록 (list() 사용)으로 바꾸면 원하는대로 "있는 그대로"추가됩니다.

실제로 이것은 Dirk Eddelbuettel의 대답에 "더 많은 설명 표시"주석에 묻어 있었고 c()에 대한 도움말에는 (더 당혹스럽게도) 도움이되었습니다. 도움 요청 인용 :

## do *not* use 
c(ll, d = 1:3) # which is == c(ll, as.list(c(d = 1:3)) 
## but rather 
c(ll, d = list(1:3)) # c() combining two lists 
관련 문제