dplyr에 가입할 때 x와 y에 대한 열 이름을 지정하는 방법은 무엇입니까?
dplyr을 사용하여 가입하고자 하는 데이터 프레임이 두 개 있습니다.하나는 이름을 포함하는 데이터 프레임입니다.
test_data <- data.frame(first_name = c("john", "bill", "madison", "abby", "zzz"),
stringsAsFactors = FALSE)
다른 데이터 프레임에는 성별을 식별하는 칸트로비츠 이름 코퍼스의 정리된 버전이 포함되어 있습니다.다음은 최소한의 예입니다.
kantrowitz <- structure(list(name = c("john", "bill", "madison", "abby", "thomas"), gender = c("M", "either", "M", "either", "M")), .Names = c("name", "gender"), row.names = c(NA, 5L), class = c("tbl_df", "tbl", "data.frame"))
저는 본질적으로 이름의 성별을 검색하고 싶습니다.test_data
를 사용하여 테이블kantrowitz
표. 제가 이것을 함수로 추상화할 것이기 때문입니다.encode_gender
사용할 데이터 집합의 열 이름을 알 수 없으므로, 사용될 것이라고는 장담할 수 없습니다.name
에 있어서와 같이kantrowitz$name
.
기본 R에서 병합을 수행하는 방법은 다음과 같습니다.
merge(test_data, kantrowitz, by.x = "first_names", by.y = "name", all.x = TRUE)
그러면 올바른 출력이 반환됩니다.
first_name gender
1 abby either
2 bill either
3 john M
4 madison M
5 zzz <NA>
하지만 저는 다른 모든 데이터 조작을 위해 이 패키지를 사용하고 있기 때문에 이 공급업체를 하고 싶습니다.디플라이어by
다양한 옵션*_join
함수를 사용하면 열 이름을 하나만 지정할 수 있지만 두 개만 지정해야 합니다.저는 다음과 같은 것을 찾고 있습니다.
library(dplyr)
# either
left_join(test_data, kantrowitz, by.x = "first_name", by.y = "name")
# or
left_join(test_data, kantrowitz, by = c("first_name", "name"))
dplyr을 사용하여 이러한 종류의 조인을 수행하는 방법은 무엇입니까?
(칸트로비츠 말뭉치가 성별을 식별하는 나쁜 방법이라는 것은 신경 쓰지 마세요.더 나은 구현을 위해 노력하고 있지만, 먼저 이 작업을 수행하고 싶습니다.)
이 기능은 dplyr v0.3에 추가되었습니다.이제 명명된 문자 벡터를 에 전달할 수 있습니다.by
에 있어서의 논쟁.left_join
(및 기타 결합 함수) - 각 데이터 프레임에서 결합할 열을 지정합니다.원래 질문에 제시된 예에서 코드는 다음과 같습니다.
left_join(test_data, kantrowitz, by = c("first_name" = "name"))
이는 실제 해결책이라기보다는 해결책에 가깝습니다.새 개체를 생성할 수 있습니다.test_data
다른 열 이름으로:
left_join("names<-"(test_data, "name"), kantrowitz, by = "name")
name gender
1 john M
2 bill either
3 madison M
4 abby either
5 zzz <NA>
언급URL : https://stackoverflow.com/questions/21888910/how-to-specify-names-of-columns-for-x-and-y-when-joining-in-dplyr
'itsource' 카테고리의 다른 글
조건을 충족하는 행렬의 행 선택 (0) | 2023.06.06 |
---|---|
가져오기 오류: dateutil.parser라는 모듈이 없습니다. (0) | 2023.06.06 |
안드로이드에서 의도한 추가 데이터를 얻으려면 어떻게 해야 합니까? (0) | 2023.06.06 |
firebase deploy -- 함수만 기존 함수를 재정의합니다. (0) | 2023.06.06 |
문자열 벡터를 할당하여 열 이름으로 빈 데이터 프레임을 생성하시겠습니까? (0) | 2023.06.06 |