하나의 열이 목록 인 데이터 프레임에 데이터가 있습니다.R - 정리 목록의 Data_frame 열을 깔끔하게 정리하십시오.
rand_lets <- function(){
sample(letters[1:26], runif(sample(1:10, 1), min=5, max=12))
}
example_data <- data.frame(ID = seq(1:5),
location = LETTERS[1:5],
observations = I(list(rand_lets(),
rand_lets(),
rand_lets(),
rand_lets(),
rand_lets())))
나는이 목록의 각 요소가 새 열로 분리되도록 목록 열을 목록에서 제외 할 수있는 우아한 tidyverse 방법을 찾고 있어요 :이 예입니다. 예를 들어 첫 번째 행은 다음과 같이 보일 것이다 :
ID location observations observations.1 observations.3 observations.3 observations.4 observations.5 observations.6 observations.7 observations.8 observations.9
1 A "y" "b" "m" "u" "x" "j" "t" "i" "v" "w"
물론 목록 항목이있을 수 있습니다 다른 길이 때문에 빈 셀은 NA해야한다.
어떻게이 작업을 수행 할 수 있습니까? 당신이 "긴"형식으로 데이터를 보존하려면
긴 형식은 대개 확실히 불분명 한 데이터에 유용하지만, 실제로 와이드로 직접 가고 싶다면 목록 컬럼에서 데이터를 구조화 할 수 있습니다 : 'example_data %> % mutate (observations = map (observations, ~ as_data_frame (t (.x)))) %> % unnest()' – alistaire
굉장합니다. 그것은'map()'의 깔끔한 사용법입니다. 긴 형식이 더 유용하다는 데 동의하지만 자습서에서 데이터 집합을 사용하고 넓은 형식에서 긴 형식으로 이동하는 것이 좋은 첫 번째 교훈입니다. –