서로 다른 조합을 기반으로 열 목록에 함수 목록 적용

프라 데프

나는 dataframe이 df세 가지 범주 변수 cat1, cat2, cat3연속하는 2 개 개의 변수를 con1, con2. 나는 기능의 목록을 계산하고 싶은 sd, mean열 목록 con1, con2열 목록의 다른 조합을 기반으로 cat1, cat2, cat3. 모든 다른 조합을 명시 적으로 부분 화했습니다.

# Random generation of values for categorical data
set.seed(33)
df <- data.frame(cat1 = sample( LETTERS[1:2], 100, replace=TRUE ), 
                cat2 = sample( LETTERS[3:5], 100, replace=TRUE ),
                cat3 = sample( LETTERS[2:4], 100, replace=TRUE ),
                con1 = runif(100,0,100),
                con2 = runif(100,23,45))

# Introducing null values 
df$con1[c(23,53,92)] <- NA
df$con2[c(33,46)] <- NA

results <- data.frame()
funs <- list(sd=sd, mean=mean)

# calculation of mean and sd on total observations
sapply(funs, function(x) sapply(df[,c(4,5)], x, na.rm=T))

# calculation of mean and sd on different levels of cat1 
sapply(funs, function(x) sapply(df[df$cat1=='A',c(4,5)], x, na.rm=T))
sapply(funs, function(x) sapply(df[df$cat1=='B',c(4,5)], x, na.rm=T))

# calculation of mean and sd on different levels of cat1 and cat2
sapply(funs, function(x) sapply(df[df$cat1=='A' & df$cat2=='C' ,c(4,5)], x, na.rm=T))
.
.
.
sapply(funs, function(x) sapply(df[df$cat1=='B' & df$cat2=='E' ,c(4,5)], x, na.rm=T))

# Similarly for the combinations of three cat variables cat1, cat2, cat3

다른 조합을 기반으로 열 목록에 대한 함수 목록을 동적으로 계산하는 함수를 작성하고 싶습니다. 몇 가지 제안을 해주세요. 감사 !

편집 : 나는 이미 사용하여 몇 가지 현명한 제안을 받았습니다 dplyr. apply추가 요구 사항에서 패밀리 기능 (데이터 프레임)을 사용하는 데 도움 이 될 것이므로 누군가가 가족 기능을 사용하여 제안을 제공하면 좋을 것 입니다.

도마

이것은 간단한 단선 기본 솔루션입니다.

> do.call(cbind, lapply(funs, function(x) aggregate(cbind(con1, con2) ~ cat1 + cat2 + cat3, data = df, FUN = x, na.rm = TRUE)))
   sd.cat1 sd.cat2 sd.cat3  sd.con1   sd.con2 mean.cat1 mean.cat2 mean.cat3 mean.con1 mean.con2
1        A       C       B       NA        NA         A         C         B  25.52641  37.40603
2        B       C       B 32.67192  6.966547         B         C         B  46.70387  34.85437
3        A       D       B 31.05224  6.530313         A         D         B  37.91553  37.13142
4        B       D       B 23.80335  6.001468         B         D         B  59.75107  30.29681
5        A       E       B 22.79285  1.526472         A         E         B  38.54742  25.23007
6        B       E       B 32.92139  2.621067         B         E         B  51.56253  29.52367
7        A       C       C 26.98661  5.710335         A         C         C  36.32045  36.42465
8        B       C       C 20.22217  8.117184         B         C         C  60.60036  34.98460
9        A       D       C 33.39273  7.367412         A         D         C  40.77786  35.03747
10       B       D       C 12.95351  8.829061         B         D         C  49.77160  33.21836
11       A       E       C 33.73433  4.689548         A         E         C  55.53135  32.38279
12       B       E       C 25.38637  9.172137         B         E         C  46.69063  31.56733
13       A       C       D 36.12545  6.323929         A         C         D  48.34187  32.36789
14       B       C       D 30.01992  7.130869         B         C         D  53.87571  33.12760
15       A       D       D 15.94151 11.756115         A         D         D  35.89909  31.76871
16       B       D       D 10.89030  6.829829         B         D         D  22.86577  32.53725
17       A       E       D 24.88410  6.108631         A         E         D  47.32549  35.22782
18       B       E       D 12.73711  8.151424         B         E         D  33.95569  36.70167

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 목록을 기반으로 목록 열에서 목록 값 제거

분류에서Dev

다른 목록의 정렬을 기반으로 목록에 변형 적용

분류에서Dev

목록 요소 조합에서 목록을 생성하기위한 적용 함수의 올바른 사용

분류에서Dev

목록 요소 조합에서 목록을 생성하기위한 적용 함수의 올바른 사용

분류에서Dev

Pandas 열 요소를 복사하고 관련 목록을 기반으로 다른 열에 적용

분류에서Dev

어떻게 자바에서 문자열의 다른 목록을 기반으로 구조 내 목록을 줄일 수있다?

분류에서Dev

다른 문자열을 기반으로 열에서 목록 만들기

분류에서Dev

다른 열의 부호 변경을 기반으로 목록에서 수학적으로 차이를 계산하는 방법

분류에서Dev

목록의 다른 열 내용을 기반으로 새 열 값 만들기

분류에서Dev

다른 목록 또는 배열을 기반으로 배열 / 목록에서 요소의 인덱스 찾기

분류에서Dev

목록에서 k 번째 요소를 인쇄합니다. 목록은 다른 배열에있는 수를 기반으로하여 얻습니다.

분류에서Dev

목록에서 k 번째 요소를 인쇄합니다. 목록은 다른 배열에있는 수를 기반으로하여 얻습니다.

분류에서Dev

여러 다른 값 목록에 대한 근접성을 기반으로 조건부 서식 적용

분류에서Dev

문자형 벡터를 기반으로 목록의 다른 요소에 유사한 함수 적용

분류에서Dev

정수 목록을 사용하여 다른 목록의 인덱스를 참조하여 해당 목록에서 특정 값을 반환합니다.

분류에서Dev

다른 유형의 다른 목록에있는 항목을 기반으로 한 목록에서 항목 찾기

분류에서Dev

R에서 다른 목록을 기반으로 목록 목록을 어떻게 제한합니까?

분류에서Dev

속성을 기반으로 한 목록에서 다른 목록으로 목록 개체 복사

분류에서Dev

일반 클래스에서 문자열 목록을 만들고 해당 목록에 TrueForAll을 적용합니다.

분류에서Dev

목록 또는 다른 열의 값을 기반으로 Pandas 데이터 프레임에서 동적으로 열 선택

분류에서Dev

다른 목록을 기반으로 목록에서 텍스트 연결

분류에서Dev

Powershell의 다른 목록을 사용하여 목록에서 부분적으로 일치하는 항목 검색

분류에서Dev

Python에서 두 목록을 다른 목록으로 병합

분류에서Dev

배열을 기반으로 목록에서 항목 선택

분류에서Dev

다른 목록을 기반으로 일반 목록 필터링

분류에서Dev

한 목록에서 다른 목록으로 문자열 이동

분류에서Dev

이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

분류에서Dev

이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

분류에서Dev

조건 자 논리를 사용하여 목록의 개체가 C #의 다른 목록에 포함 된 요소를 기반으로 제네릭 목록에서 요소를 제거하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    다른 목록을 기반으로 목록 열에서 목록 값 제거

  2. 2

    다른 목록의 정렬을 기반으로 목록에 변형 적용

  3. 3

    목록 요소 조합에서 목록을 생성하기위한 적용 함수의 올바른 사용

  4. 4

    목록 요소 조합에서 목록을 생성하기위한 적용 함수의 올바른 사용

  5. 5

    Pandas 열 요소를 복사하고 관련 목록을 기반으로 다른 열에 적용

  6. 6

    어떻게 자바에서 문자열의 다른 목록을 기반으로 구조 내 목록을 줄일 수있다?

  7. 7

    다른 문자열을 기반으로 열에서 목록 만들기

  8. 8

    다른 열의 부호 변경을 기반으로 목록에서 수학적으로 차이를 계산하는 방법

  9. 9

    목록의 다른 열 내용을 기반으로 새 열 값 만들기

  10. 10

    다른 목록 또는 배열을 기반으로 배열 / 목록에서 요소의 인덱스 찾기

  11. 11

    목록에서 k 번째 요소를 인쇄합니다. 목록은 다른 배열에있는 수를 기반으로하여 얻습니다.

  12. 12

    목록에서 k 번째 요소를 인쇄합니다. 목록은 다른 배열에있는 수를 기반으로하여 얻습니다.

  13. 13

    여러 다른 값 목록에 대한 근접성을 기반으로 조건부 서식 적용

  14. 14

    문자형 벡터를 기반으로 목록의 다른 요소에 유사한 함수 적용

  15. 15

    정수 목록을 사용하여 다른 목록의 인덱스를 참조하여 해당 목록에서 특정 값을 반환합니다.

  16. 16

    다른 유형의 다른 목록에있는 항목을 기반으로 한 목록에서 항목 찾기

  17. 17

    R에서 다른 목록을 기반으로 목록 목록을 어떻게 제한합니까?

  18. 18

    속성을 기반으로 한 목록에서 다른 목록으로 목록 개체 복사

  19. 19

    일반 클래스에서 문자열 목록을 만들고 해당 목록에 TrueForAll을 적용합니다.

  20. 20

    목록 또는 다른 열의 값을 기반으로 Pandas 데이터 프레임에서 동적으로 열 선택

  21. 21

    다른 목록을 기반으로 목록에서 텍스트 연결

  22. 22

    Powershell의 다른 목록을 사용하여 목록에서 부분적으로 일치하는 항목 검색

  23. 23

    Python에서 두 목록을 다른 목록으로 병합

  24. 24

    배열을 기반으로 목록에서 항목 선택

  25. 25

    다른 목록을 기반으로 일반 목록 필터링

  26. 26

    한 목록에서 다른 목록으로 문자열 이동

  27. 27

    이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

  28. 28

    이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

  29. 29

    조건 자 논리를 사용하여 목록의 개체가 C #의 다른 목록에 포함 된 요소를 기반으로 제네릭 목록에서 요소를 제거하려면 어떻게해야합니까?

뜨겁다태그

보관