R은 각각에 대해 별도의 함수를 사용하여 동적으로 추가 된 열을 집계합니다.

SomeDude

다음과 같은 데이터 프레임이 있습니다.

id  v    t1   t2  t3    t4   date1        list1

1   1.0  1.4   2   0.45   3    2020-09-03   val1
1   1.0  1.6   3   0.55  3.7  2020-09-05   val2

id, v각 열에 t1, t2, t3, t4, date1, list1다른 집계 함수를 적용 하여 열 그룹화 하고 집계하는 방법은 무엇입니까 ? 더 구체적으로

t1 -> mean
t2 -> max
t3 -> mean
t4 -> max
date -> max
list1 -> join as in python's ','.join

따라서 집계 후 프레임은 다음과 같습니다.

id  v    t1   t2  t3    t4   date1        list1

1   1.0  1.5   3   0.5   3.7  2020-09-05   val1, val2

또한 한 가지 더, 이러한 열은 R 반짝이 프레임 워크에서 사용자 선택에 따라 동적으로 추가 될 수 있습니다. 즉, 집계하려는 모든 열이 데이터 프레임에 있지만 일부는 집계 할 필요가 없을 수 있습니다. 예를 들어 사용자 t1, date1는 나머지 만 선택할 수 있습니다. 따라서 내 집계 매개 변수는 선택한 열에 따라 달라지며 사용자 선택에서 사용할 수있는 열 이름이 있습니다. 따라서 동적 집계 쿼리를 어떻게 작성할 수 있는지 묻는 것이 합리적 일 것입니다.

파이썬에서는 사용자가 선택한 열을 기반으로 위와 같은 사전을 동적으로 작성하고 다음과 같은 것을 사용할 수 있습니다. pd.agg(**dict)

R에서 어떻게 할 수 있습니까? dplyr :: summarise 및 data.table을 살펴 보려고했지만 한 번에 모두 집계 할 수없는 것 같습니다. 당신의 도움을 주셔서 감사합니다.

Akrun

across열 블록에 함수를 적용 하는 사용할 수 있습니다.

library(dplyr)
df1 %>% 
   group_by(id, v) %>% 
   summarise(across(c(t1, t3), mean),
             across(c(t2, t4, date1), max), 
             list1 = toString(list1), .groups = 'drop')

-산출

# A tibble: 1 x 8
#     id     v    t1    t3    t2    t4 date1      list1     
#  <int> <dbl> <dbl> <dbl> <int> <dbl> <chr>      <chr>     
#1     1     1   1.5   0.5     3   3.7 2020-09-05 val1, val2

함수, 열 이름이 모두 사용자 입력 인 경우

nm1 <- c("t1", "t3")
nm2 <- c("t2", "t4", "date1")
nm3 <- c("list1")

f1 <- "mean"
f2 <- "max"
f3 <- "toString"

df1 %>%
    group_by(id, v) %>%
    summarise(across(all_of(nm1), ~ match.fun(f1)(.)),
              across(all_of(nm2), ~ match.fun(f2)(.)),
              !! nm3 := match.fun(f3)(!! rlang::sym(nm3)), .groups = 'drop')

-산출

# A tibble: 1 x 8
#     id     v    t1    t3    t2    t4 date1      list1     
#  <int> <dbl> <dbl> <dbl> <int> <dbl> <date>     <chr>     
#1     1     1   1.5   0.5     3   3.7 2020-09-05 val1, val2

표현식으로 전달하고 평가할 수도 있습니다.

expr1 <- glue::glue('across(c({toString(nm1)}), {f1});',
              'across(c({toString(nm2)}),  {f2});',
          'across(c({toString(nm3)}),  {f3})')
df1 %>% 
     group_by(id, v) %>%
     summarise(!!! rlang::parse_exprs(expr1), .groups = 'drop')

-산출

# A tibble: 1 x 8
#     id     v    t1    t3    t2    t4 date1      list1     
#  <int> <dbl> <dbl> <dbl> <int> <dbl> <date>     <chr>     
#1     1     1   1.5   0.5     3   3.7 2020-09-05 val1, val2

데이터

df1 <- structure(list(id = c(1L, 1L), v = c(1, 1), t1 = c(1.4, 1.6), 
    t2 = 2:3, t3 = c(0.45, 0.55), t4 = c(3, 3.7), date1 = structure(c(18508, 
    18510), class = "Date"), list1 = c("val1", "val2")), row.names = c(NA, 
-2L), class = "data.frame")

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

개체의 속성을 개별적으로 편집하고 각 속성에 대해 동적으로 열려면 "편집"상자가 필요합니다.

분류에서Dev

요인별로 그룹화 된 산점도 (X1, X2) : ggplot2를 사용하여 각 그룹에서 X1의 최대 값에 해당하는 점을 연결하는 곡선을 추가합니다.

분류에서Dev

각도 js를 사용하여 동적으로 추가 된 양식 필드를 삭제할 수 없습니다.

분류에서Dev

R을 사용하여 SQL 테이블의 각 열에 대해 반복적으로 쿼리를 실행하는 방법은 무엇입니까?

분류에서Dev

R-3 개 열의 각 값을 인수로 사용하여 3 개 열 행렬의 각 행에 3 개 인수 함수를 적용합니다.

분류에서Dev

각 행에 대한 R은 특수 조건을 충족하기 전에 행에서 열 중 하나의 값을 사용하여 합계를 계산합니다.

분류에서Dev

JQuery는 동적으로 추가 된 다른 입력 필드에 대해 동적으로 추가 된 입력 필드의 유효성을 검사합니다.

분류에서Dev

R의 루프를 사용하여 각 요인 수준에 대해 개별적으로 z 점수를 생성하는 방법은 무엇입니까?

분류에서Dev

Python의 Pandas를 사용하여 각 그룹에 대해 가장 높은 값 행을 선택합니다.

분류에서Dev

가능한 경우 문자열 ID를 사용하여 조각에 EditText를 동적으로 추가합니다.

분류에서Dev

루프를 사용하여 R의 행 합계를 가져 오지 마십시오. 여기서 각 행에 대해 서로 다른 열의 합계를 시작하고 중지합니다.

분류에서Dev

R은 각 행에 대해 두 데이터 프레임 셀의 델타를 계산하고 추가합니다.

분류에서Dev

PostgreSQL의 배열에 요소별로 집계 함수를 적용하려면 어떻게해야합니까 (예 : 그룹에 대한 가중치 배열 합계)?

분류에서Dev

jQuery를 사용하여 배열의 각 항목을 별도의 HTML 요소에 추가하는 방법은 무엇입니까?

분류에서Dev

jQuery를 사용하여 배열의 각 항목을 별도의 HTML 요소에 추가하는 방법은 무엇입니까?

분류에서Dev

녹아웃에서 각 셀의 합계를 계산하기 위해 열과 행을 동적으로 추가하는 방법

분류에서Dev

집계 함수를 사용하여 열을 피벗하고 마지막 열에서 집계 된 값의 합계를 계산합니다.

분류에서Dev

PHP 분할 쉼표로 구분 된 문자열은 분할 된 배열의 각 값에 대해 동일한 값을 추가합니까?

분류에서Dev

tidyverse를 사용하여 함수 목록을 적용하고 적용된 각 함수에 대한 열을 가져 오는 방법

분류에서Dev

rollupjs를 사용하여 매개 변수에 의해 이름이 정의 된 모듈을 동적으로 가져 오는 방법은 무엇입니까?

분류에서Dev

시간 간격 당 각 신호에 대해 집계 된 값을 사용하여 개별 신호 스트림을 하나의 테이블로 결합

분류에서Dev

R 출력을 형식화하여 각 결과를 별도의 행으로 가져오고 행 식별자로 알파벳을 사용합니다.

분류에서Dev

Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

분류에서Dev

Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

분류에서Dev

각도 7에서 ngFor를 사용하여 동적으로 중첩 된 배열을 반복하는 방법

분류에서Dev

새 집계가 포함 된 확장 제어로 인해 "제어에 대해 정의 된 기본 집계없이 직접 하위를 추가 할 수 없음"오류가 발생합니다.

분류에서Dev

각 그룹 (그룹 별)에 대해 가장 큰 2 개의 값을 기반으로 합계를 계산하는 방법은 무엇입니까?

분류에서Dev

group by를 사용하여 데이터의 서로 다른 두 하위 집합을 기반으로 두 집계에 대한 고유 개수를 가져옵니다.

분류에서Dev

열에서 숫자를 추출하고 각각을 별도의 열로 분할

Related 관련 기사

  1. 1

    개체의 속성을 개별적으로 편집하고 각 속성에 대해 동적으로 열려면 "편집"상자가 필요합니다.

  2. 2

    요인별로 그룹화 된 산점도 (X1, X2) : ggplot2를 사용하여 각 그룹에서 X1의 최대 값에 해당하는 점을 연결하는 곡선을 추가합니다.

  3. 3

    각도 js를 사용하여 동적으로 추가 된 양식 필드를 삭제할 수 없습니다.

  4. 4

    R을 사용하여 SQL 테이블의 각 열에 대해 반복적으로 쿼리를 실행하는 방법은 무엇입니까?

  5. 5

    R-3 개 열의 각 값을 인수로 사용하여 3 개 열 행렬의 각 행에 3 개 인수 함수를 적용합니다.

  6. 6

    각 행에 대한 R은 특수 조건을 충족하기 전에 행에서 열 중 하나의 값을 사용하여 합계를 계산합니다.

  7. 7

    JQuery는 동적으로 추가 된 다른 입력 필드에 대해 동적으로 추가 된 입력 필드의 유효성을 검사합니다.

  8. 8

    R의 루프를 사용하여 각 요인 수준에 대해 개별적으로 z 점수를 생성하는 방법은 무엇입니까?

  9. 9

    Python의 Pandas를 사용하여 각 그룹에 대해 가장 높은 값 행을 선택합니다.

  10. 10

    가능한 경우 문자열 ID를 사용하여 조각에 EditText를 동적으로 추가합니다.

  11. 11

    루프를 사용하여 R의 행 합계를 가져 오지 마십시오. 여기서 각 행에 대해 서로 다른 열의 합계를 시작하고 중지합니다.

  12. 12

    R은 각 행에 대해 두 데이터 프레임 셀의 델타를 계산하고 추가합니다.

  13. 13

    PostgreSQL의 배열에 요소별로 집계 함수를 적용하려면 어떻게해야합니까 (예 : 그룹에 대한 가중치 배열 합계)?

  14. 14

    jQuery를 사용하여 배열의 각 항목을 별도의 HTML 요소에 추가하는 방법은 무엇입니까?

  15. 15

    jQuery를 사용하여 배열의 각 항목을 별도의 HTML 요소에 추가하는 방법은 무엇입니까?

  16. 16

    녹아웃에서 각 셀의 합계를 계산하기 위해 열과 행을 동적으로 추가하는 방법

  17. 17

    집계 함수를 사용하여 열을 피벗하고 마지막 열에서 집계 된 값의 합계를 계산합니다.

  18. 18

    PHP 분할 쉼표로 구분 된 문자열은 분할 된 배열의 각 값에 대해 동일한 값을 추가합니까?

  19. 19

    tidyverse를 사용하여 함수 목록을 적용하고 적용된 각 함수에 대한 열을 가져 오는 방법

  20. 20

    rollupjs를 사용하여 매개 변수에 의해 이름이 정의 된 모듈을 동적으로 가져 오는 방법은 무엇입니까?

  21. 21

    시간 간격 당 각 신호에 대해 집계 된 값을 사용하여 개별 신호 스트림을 하나의 테이블로 결합

  22. 22

    R 출력을 형식화하여 각 결과를 별도의 행으로 가져오고 행 식별자로 알파벳을 사용합니다.

  23. 23

    Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

  24. 24

    Pandas는 groupby를 사용하여 groupby 변수의 각 값에 대해 다른 함수를 적용합니다.

  25. 25

    각도 7에서 ngFor를 사용하여 동적으로 중첩 된 배열을 반복하는 방법

  26. 26

    새 집계가 포함 된 확장 제어로 인해 "제어에 대해 정의 된 기본 집계없이 직접 하위를 추가 할 수 없음"오류가 발생합니다.

  27. 27

    각 그룹 (그룹 별)에 대해 가장 큰 2 개의 값을 기반으로 합계를 계산하는 방법은 무엇입니까?

  28. 28

    group by를 사용하여 데이터의 서로 다른 두 하위 집합을 기반으로 두 집계에 대한 고유 개수를 가져옵니다.

  29. 29

    열에서 숫자를 추출하고 각각을 별도의 열로 분할

뜨겁다태그

보관