dplyr을 사용하여 열 ID를 기반으로 행 데이터를 병합하는 방법

Technophobe01

두 열 선택을 기반으로 데이터 프레임의 집합 행을 한 행으로 축소하는 가장 좋은 방법을 결정하려고합니다.

예를 들면 :

| State |Fatalities|Injuries|Dmg   |Dmg|year|eventType| PropExp | CropExp |   
| ------|----------|--------|------|---|----|---------|---------|---------|   
| WA    | 1        | 100    |25.00 |0  |1971|HAIL     |1000000  |1        | 0 |   
| WA    | 6        | 200    |25.00 |0  |1972|TORNADO  |1000000  |1        | 1 |   
| WA    | 2        | 300    |25.00 |0  |1973|SNOW     |1000000  |1        | 0 |   
| WA    | 6        | 900    |65.00 |0  |1973|TORNADO  |1000000  |1        | 1 |   
| WA    | 4        | 300    |25.00 |0  |1973|TORNADO  |1000000  |1        | 0 |   
| WA    | 0        | 900    |65.00 |0  |1972|TORNADO  |1000000  |1        | 1 |

의도는 이벤트 유형별로 매년 행을 병합하고 추가하는 것입니다 ... 따라서 1973 TORNADO 행을 하나의 행으로 축소합니다. 선택한 행 데이터를 추가하고 새로운 병합 데이터 행을 생성합니다.

| State |Fatalities|Injuries|Dmg   |Dmg|year|eventType| PropExp | CropExp |   
| ------|----------|--------|------|---|----|---------|---------|---------|   
| WA    | 1        | 100    |25.00 |0  |1971|HAIL     |1000000  |1        | 0 |   
| WA    | 6        | 200    |25.00 |0  |1972|TORNADO  |1000000  |1        | 1 |   
| WA    | 2        | 300    |25.00 |0  |1973|SNOW     |1000000  |1        | 0 |   
| WA    | 10       | 1200   |90.00 |0  |1973|TORNADO  |1000000  |1        | 1 |   
| WA    | 0        | 900    |65.00 |0  |1972|TORNADO  |1000000  |1        | 1 |

참고 : 저는 이전에 완료 한 Coursera Reproducible Research 과정의 예제 데이터 세트를 사용하고 있습니다. 질문은 코스 등과 관련이 없습니다. 다른 데이터 세트를 축소하려고 시도하고 있으며 R에서 깔끔하게 수행되는 방법을 알고 싶습니다.

내가 무엇을 놓치고 있습니까?

모든 도움을 감사하게 받고 감사했습니다.

Jaap

dplyr댓글에 언급 된 @Khashaa 솔루션 외에도 기본 R 오프 코스에서도이 작업을 수행 할 수 있습니다.

aggregate(cbind(Fatalities, Injuries, Dmg, Dmg.1, PropExp, CropExp) ~ State + year + eventType, data = df, sum)

이것은 제공합니다 :

  State year eventType Fatalities Injuries Dmg Dmg.1 PropExp CropExp
1    WA 1971      HAIL          1      100  25     0 1000000       1
2    WA 1973      SNOW          2      300  25     0 1000000       1
3    WA 1972   TORNADO          6     1100  90     0 2000000       2
4    WA 1973   TORNADO         10     1200  90     0 2000000       2

또는 대안으로 다음을 사용할 수도 있습니다 data.table.

library(data.table)
setDT(df)[, lapply(.SD, sum), by=.(State, year, eventType)]

동일한 결과를 제공합니다.

양자의 단점 data.table용액과 dplyr함께 용액을 summarize_each모든 컬럼이 합산되어있다. 원하는 출력으로 판단하면 PropExp& CropExp합계를 원하지 않습니다 . 당신은으로 요약 할 수있다 열 표시하여 그것을 달성 할 수 .SDcols있는 data.table이나와 select의를 dplyr:

# data.table
setDT(df)[, lapply(.SD, sum),
          by=.(State, year, eventType),
          .SDcols=c("Fatalities","Injuries","Dmg")]

# dplyr
df %>% group_by(State, year, eventType) %>% 
  summarise_each(funs(sum), -PropExp, -CropExp, -Dmg.1)

둘 다 결과 :

   State year eventType Fatalities Injuries Dmg
1:    WA 1971      HAIL          1      100  25
2:    WA 1972   TORNADO          6     1100  90
3:    WA 1973      SNOW          2      300  25
4:    WA 1973   TORNADO         10     1200  90

물론 기본 R에서도이 작업을 수행 할 수 있습니다.

aggregate(cbind(Fatalities, Injuries, Dmg) ~ State + year + eventType, data = df, sum)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ddply를 사용하여 열을 기반으로 이진 데이터 행 병합

분류에서Dev

Pandas-새 열 데이터를 기반으로 행 값을 찾고 여러 기준으로 자체 병합하는 방법

분류에서Dev

c # ItemArray를 사용하여 데이터 테이블에서 두 데이터 행과 열을 하나로 병합하는 방법은 무엇입니까?

분류에서Dev

결과 집합의 이전 행을 기반으로 열 데이터를 업데이트하는 방법

분류에서Dev

Python Pandas를 사용하여 행을 기반으로 한 데이터 열을 여러 열로 변경하는 방법은 무엇입니까?

분류에서Dev

여러 열의 데이터를 기반으로 두 파일을 병합하는 방법은 무엇입니까?

분류에서Dev

Pandas를 사용하여 날짜 열과 일 수 열을 기반으로 데이터 프레임에 행을 추가하는 방법

분류에서Dev

Pandas를 사용하여 2 개 열의 일치하는 행을 기반으로 2 개의 데이터 프레임 병합

분류에서Dev

첫 번째 열을 기반으로 데이터를 병합하는 방법은 무엇입니까?

분류에서Dev

팬더를 사용하여 그룹별로 데이터를 기반으로 열의 행을 빼는 방법은 무엇입니까?

분류에서Dev

단일 텍스트 상자가있는 열 데이터를 기반으로 행을 필터링하는 방법

분류에서Dev

단일 텍스트 상자가있는 열 데이터를 기반으로 행을 필터링하는 방법

분류에서Dev

열 이름을 기반으로 행의 데이터를 분류하고 조작하는 방법

분류에서Dev

AWK를 사용하여 현재 열 값을 기반으로 추가 행을 인쇄하는 방법

분류에서Dev

두 열의 변수 2 개를 기반으로 데이터 프레임의 행을 삭제하는 방법

분류에서Dev

Angular Datatable : 열 데이터를 기반으로 즉시 행 확인란을 비활성화하는 방법

분류에서Dev

행 및 열 데이터를 기반으로 값을 찾는 방법

분류에서Dev

파이썬을 사용하여 열 값으로 -9999를 사용하여 데이터 프레임의 행을 제거하는 방법은 무엇입니까?

분류에서Dev

R을 사용하여 데이터 프레임에서 개별 열의 최소값을 기반으로 특정 열의 행을 하위 집합하는 방법

분류에서Dev

기본 ID 열에 연결된 데이터를 활용하여 보조 ID 열을 기반으로 새 열을 만드는 방법

분류에서Dev

현재 / 이전 배열의 값을 기반으로 데이터를 다차원 배열로 병합하는 방법

분류에서Dev

동일한 ID를 사용하여 배열을 병합하는 방법

분류에서Dev

다른 데이터 프레임의 행 번호를 기반으로 2 열 데이터 프레임의 내용을 변환하는 방법

분류에서Dev

PHP를 사용하여 열을 기반으로 여러 행을 업데이트하는 MySQL 쿼리

분류에서Dev

PHP를 사용하여 열을 기반으로 여러 행을 업데이트하는 MySQL 쿼리

분류에서Dev

Pandas Python을 사용하여 일부 열이 동일한 경우 데이터를 병합하는 방법

분류에서Dev

다른 열을 추가하는 동안 열을 기반으로 DataFrames를 병합하는 방법

분류에서Dev

Bigquery에서 중첩 된 배열 데이터를 행으로 병합하는 방법

분류에서Dev

R에서 'rvest'를 사용하여 웹 스크래핑을 할 때 특정 행 정보를 기반으로 추가 변수를 데이터에 병합하는 가장 좋은 방법은 무엇입니까?

Related 관련 기사

  1. 1

    ddply를 사용하여 열을 기반으로 이진 데이터 행 병합

  2. 2

    Pandas-새 열 데이터를 기반으로 행 값을 찾고 여러 기준으로 자체 병합하는 방법

  3. 3

    c # ItemArray를 사용하여 데이터 테이블에서 두 데이터 행과 열을 하나로 병합하는 방법은 무엇입니까?

  4. 4

    결과 집합의 이전 행을 기반으로 열 데이터를 업데이트하는 방법

  5. 5

    Python Pandas를 사용하여 행을 기반으로 한 데이터 열을 여러 열로 변경하는 방법은 무엇입니까?

  6. 6

    여러 열의 데이터를 기반으로 두 파일을 병합하는 방법은 무엇입니까?

  7. 7

    Pandas를 사용하여 날짜 열과 일 수 열을 기반으로 데이터 프레임에 행을 추가하는 방법

  8. 8

    Pandas를 사용하여 2 개 열의 일치하는 행을 기반으로 2 개의 데이터 프레임 병합

  9. 9

    첫 번째 열을 기반으로 데이터를 병합하는 방법은 무엇입니까?

  10. 10

    팬더를 사용하여 그룹별로 데이터를 기반으로 열의 행을 빼는 방법은 무엇입니까?

  11. 11

    단일 텍스트 상자가있는 열 데이터를 기반으로 행을 필터링하는 방법

  12. 12

    단일 텍스트 상자가있는 열 데이터를 기반으로 행을 필터링하는 방법

  13. 13

    열 이름을 기반으로 행의 데이터를 분류하고 조작하는 방법

  14. 14

    AWK를 사용하여 현재 열 값을 기반으로 추가 행을 인쇄하는 방법

  15. 15

    두 열의 변수 2 개를 기반으로 데이터 프레임의 행을 삭제하는 방법

  16. 16

    Angular Datatable : 열 데이터를 기반으로 즉시 행 확인란을 비활성화하는 방법

  17. 17

    행 및 열 데이터를 기반으로 값을 찾는 방법

  18. 18

    파이썬을 사용하여 열 값으로 -9999를 사용하여 데이터 프레임의 행을 제거하는 방법은 무엇입니까?

  19. 19

    R을 사용하여 데이터 프레임에서 개별 열의 최소값을 기반으로 특정 열의 행을 하위 집합하는 방법

  20. 20

    기본 ID 열에 연결된 데이터를 활용하여 보조 ID 열을 기반으로 새 열을 만드는 방법

  21. 21

    현재 / 이전 배열의 값을 기반으로 데이터를 다차원 배열로 병합하는 방법

  22. 22

    동일한 ID를 사용하여 배열을 병합하는 방법

  23. 23

    다른 데이터 프레임의 행 번호를 기반으로 2 열 데이터 프레임의 내용을 변환하는 방법

  24. 24

    PHP를 사용하여 열을 기반으로 여러 행을 업데이트하는 MySQL 쿼리

  25. 25

    PHP를 사용하여 열을 기반으로 여러 행을 업데이트하는 MySQL 쿼리

  26. 26

    Pandas Python을 사용하여 일부 열이 동일한 경우 데이터를 병합하는 방법

  27. 27

    다른 열을 추가하는 동안 열을 기반으로 DataFrames를 병합하는 방법

  28. 28

    Bigquery에서 중첩 된 배열 데이터를 행으로 병합하는 방법

  29. 29

    R에서 'rvest'를 사용하여 웹 스크래핑을 할 때 특정 행 정보를 기반으로 추가 변수를 데이터에 병합하는 가장 좋은 방법은 무엇입니까?

뜨겁다태그

보관