0
의 이름의 벡터를 통해 다른 컬럼의 합계를 집계 I 다음 data.frame 있습니다는 data.frame
> DF <- data.frame(names = I(list(c("a", "b", "c"), c("a"), c("c", "d"))),
counts = c(1, 2, 3))
> DF
names counts
1 a, b, c 1
2 a 2
3 c, d 3
가 어떻게 각 이름의 총 수를 요약 결과를 얻을 수 있습니까를? 같은 뭔가 :
name sum
a 3
b 1
c 4
d 3
위에서 보여주는 세 가지 방법 각각에 대한 선호/이점이 있습니까? 첫 번째 방법은 초등/명백하고 이해하기 쉽지만 두 번째 방법은 깔끔하게 보입니다. 세 번째는 다소 불분명 한 것처럼 보입니다. – fnl
@fnl이 모든 함수는'base R'에 기초합니다. 스택 (stack) 접근법. 'setNames'를 사용하여'list' 즉'DF $ names'를 명명하고'stack'을 적용하면'key/value' 쌍을 긴 형태로 리턴하지만'ind' 열은'factor . 그래서 저는 이것을'numeric'으로 변환 한 다음'aggregate'를 사용하여 합계를 얻었습니다. – akrun
좋습니다, 감사합니다! 한 점, 어쩌면 : 나는 10k 복제를했고 성능을 측정했습니다. 첫 번째 버전은 2.792 초, 두 번째 버전은 8.591, 마지막 버전은 5.541 초 (10k 복제본 사용)입니다. 그런 다음 실제 데이터 (155k/98k 비 고유 이름)로이 작업을 수행하면이 관계가 성립합니다. 그래서 가장 애매한 방법이 가장 빠릅니다. 마지막 하나에 대한 설명 주셔서 감사합니다, 항상 새로운 것을 배울 수 있습니다! – fnl