나는 하나의 데이터 세트로 병합해야하는 약 100 개의 데이터 세트 쌍이 있습니다. 많은 데이터 세트를 한 번에 병합하는 방법을 보여주는 게시물을 보았습니다 (예 : here 및 here),하지만 내 문제는 고유합니다. 내 실제 데이터가 내 하드 드라이브에 저장되어있는 유사 이름이 지정됩니다 (예를 들어, household2010
, household2011
, household2012
및 person2010
, person2011
는 person2012
. 그들은 아래 글로벌 environment.Example에로드 할 필요가 없습니다.많은 데이터 쌍을 별도의 데이터 세트로 병합
근무 데이터 :.. 내가 hhperson2010
내가 너무 household2011
및 person2011
에이 작업을 수행 할 필요이라는 새 데이터 집합을 person2010
와 household2010
을 병합 만들 필요가
library(tidyverse)
household2010 <- tribble(
~id, ~var2, ~var3, ~var4, ~var5,
"1", "1", "1", "a", "d",
"2", "2", "2", "b", "e",
"3", "3", "3", "c", "f"
)
person2010 <- tribble(
~id, ~var6, ~var7,
"1", "1", "1",
"2", "2", "2",
"3", "3", "3",
"4", "4", "4"
)
household2011 <- tribble(
~id, ~var8, ~var9, ~var10,
"1", "1", "1", "1",
"2", "2", "2", "2",
"3", "3", "3", "3",
"4", "4", "4", "4"
)
person2011 <- tribble(
~id, ~var11, ~var12, ~var13,
"1", "1", "1", "1",
"2", "2", "2", "2",
"3", "3", "3", "3",
"4", "4", "4", "4",
"5", "5", "5", "5"
)
는 개별적으로 내가 할 수있는 :
hhperson2010 <- left_join(household2010, person2010, by = "id")
hhperson2011 <- left_join(household2011, person2011, by = "id")
내가 100 개가 넘는 데이터 쌍을 가지고 있으면 어색해집니다. lapply
을 사용하여 데이터 세트 목록을 검토하고 병합 할 수 있습니까? 같은 뭔가이 같은
dflist1 <- list(household2010, household2011)
dflist2 <- list(person2011, person2011)
lapply(function(x) left_join(dflist, dflist2, by = "id")
감사합니다. @ d.b.,하지만 하나의 데이터 세트를 만들 때이 기능이 작동하지 않습니다. 별도의 데이터 세트로 병합하려면 쌍이 필요합니다. – scottsmith
흡입 할 때 왜 안합니까? 이 100 개의 테이블은 어딘가에서 왔습니다. 파일에서 가져 오는 중입니까? 거기에 'lapply'하고 100 개의 객체를 메모리에 두지 마십시오. 우리는 데이터 출처에 대해 좀 더 생각해보십시오. 그래서 우리는 지구 환경에서 100 가지 변수를 피하는 더 똑똑한 방법을 제안 할 수 있습니다. – dmi3kno
파일은 내 하드 드라이브에 저장된 모든 RData 객체입니다 (위의 예에서 편집했습니다). 지구 환경에 실제로로드하지 않고 한꺼번에 처리 할 수 있다면 좋을 것입니다. – scottsmith