반응형
중첩 된 목록의 첫 번째 요소 선택
다음과 같은 목록이 있다고 가정 해 보겠습니다.
x = list(list(1,2), list(3,4), list(5,6))
중첩 된 목록의 첫 번째 요소 만 포함 된 목록을 원합니다. 이렇게 다른 목록을 반환하여이를 수행 할 수 있습니다.
x1 = lapply(x, function(l) l[[1]])
이것에 대한 단축키 표기법이 있습니까?
단축키는 많지 않지만 다음과 같이 할 수 있습니다.
lapply(x, `[[`, 1)
# [[1]]
# [1] 1
#
# [[2]]
# [1] 3
#
# [[3]]
# [1] 5
또 다른 가능성은 nice purrr
라이브러리를 사용합니다 .
library(purrr)
map(x, 1)
예제 목록의 경우 다음을 수행 할 수 있습니다.
unlist(x)[ c(TRUE,FALSE) ]
하지만 정확히 2 개의 요소를 갖는 각 하위 목록에 따라 다릅니다.
요소 수가 다른 경우 먼저를 수행 sapply
하여 길이를 계산 한 다음 해당하는 첫 번째 요소 위치 (참조 cumsum
) 를 계산 한 다음 unlist
ed 목록 에서 해당 값을 선택할 수 있습니다. 그러나 그때 쯤이면 받아 들여진 대답은 아마도 훨씬 더 간단 할 것입니다.
모든 하위 목록의 길이가 같으면 (2와 다를 수 있음) 다음과 같이 할 수 있습니다.
do.call( rbind, x)[,1]
또는 일반적인 개체에 대한 다른 캐스팅. 그러나 이것이 lapply
접근 방식 만큼 효율적일 것 같지 않습니다.
참고 URL : https://stackoverflow.com/questions/20428742/select-first-element-of-nested-list
반응형
'Programing' 카테고리의 다른 글
응용 프로그램이 백그라운드에있는 동안 DialogFragment를 닫는 적절한 방법 (0) | 2020.11.20 |
---|---|
버전없이 maven으로 프로젝트를 빌드하는 방법 (0) | 2020.11.20 |
프로젝트를 grunt로 빌드 할 때 Fontawesome이 작동하지 않습니다. (0) | 2020.11.20 |
파이썬으로 문자열에서 기호를 제거하는 방법은 무엇입니까? (0) | 2020.11.20 |
Python에서 가장 최근의 전 영업일 (0) | 2020.11.20 |