데이터 프레임의 고유 한 행을 가져 와서 다른 속성 행과 조인하고 싶습니다. 다음으로 품종 수를 셀 수있게하고 싶습니다. 특정 유형 또는 원산지의 고유 한 과일 수.R에서 데이터 프레임을 통합하는 우아한 방법?
fruit <- as.data.frame(unique(fruit[,2])) #get a list of unique fruits
colnames(fruit)[1] <- "fruit" #this won't rename the column and I don't know why...
fruit_summary <- join(fruits, fruit_class, by="fruit" #create a data frame that I can query
count(fruit_summary, "origin") #for eg, summarise the number of fruits of each origin
:
여기 문제에 대한 내 서투른 솔루션입니다
fruit_class <- read.table(header=TRUE, text="fruit type origin
apple pome asia
banana berry asia
orange citrus asia
pear pome newguinea")
: 두 번째 데이터 프레임 내 속성이 있습니다
fruits <- read.table(header=TRUE, text="shop fruit
1 apple
2 orange
3 apple
4 pear
2 banana
1 banana
1 orange
3 banana")
:
첫 번째 데이터 프레임은 과일의 내 목록이 있습니다
제 질문은 다음과 같습니다 : 어떻게하면 더 우아하게 표현할 수 있습니까? 2 차적으로 : 열의 이름을 바꿀 수없는 이유는 무엇입니까? 사전
:'집계 (과일 ~ 기원, 병합 (과일, fruit_class), FUN = 길이)'또는 dplyr : '과일 %> % left_join (fruit_class) %> % 수 (원점)' – alistaire
귀하 기본 코드는 아시아에서 온 과일 12 개와 새로운 기니에서 얻은 과일 4 개가 있다는 것을 말해 주므로 과일 $ 가게 열을 요약합니다 (사용하지 않으려 고합니다). 결과는 아시아 (사과, 바나나 및 오렌지)에서 3 과일 및 새로운 기니 (배)에서 하나이어야합니다. – setbackademic
필자는 7과 1을 얻었지만, 'fruit_class'의 출처를 계산하려면'count (fruit_class, origin)'를 사용하십시오. 'fruits_class %> % semi_join (fruits) %> % count (origin)'를 사용하면'과일 '에 먼저 있는지 확인하려는 경우이 경우 동일한 결과를 반환합니다. 그리고 어느 쪽도'가게'를 합산하지 않고있다; 그들은 행을 세고 있습니다. – alistaire