R : 여러 if 문 속도 향상

Alex Karvouniaris

220k 행의 데이터 프레임 (mydata)이 있고 각 행에 대해 1 열 (BRLABELS)에 8 개의 if 문을 수행하고 싶습니다. 간단한 if / else if 절차가 약 5 분 걸렸고 속도를 높이고 싶었습니다.

나는 이와 같은 스위치 기능 방법을 시도했다. 처음에는 정의했습니다

group_label<-function(x){
  switch(x,"15-19"=1,"20-24"=1,"25-29"=2,"30-34"=2,"35-39"=3,"40-44"=3,
         "45-49"=4,"50-54"=4,"55-59"=5,"60-64"=5,"ISCED 0"=6,"ISCED 1"=6,"ISCED 2"=6,"ISCED 3"=7,"ISCED 4"=7,"ISCED 5"=8,"ISCED 6"=8,0)}

그런 다음 for 루프에서 사용했습니다.

for ( i in 1:k){
  x<-mydata$BRLABELS[i]
  mydata$group[i]<-group_label(x)}

혼란스러운 부분은이 방법이 15 분 정도 소요되었지만 이론적으로는 switch 방법이 다중 if 문에 적합하다는 것입니다.

누군가 왜 이런 일이 발생하는지 설명하고 효율적인 대안을 제공 할 수 있습니까?

Alex Karvouniaris

결국 제임스가 언급 한 "자동차"패키지의 레코딩 기능을 사용했습니다.

mydata$BRLABELS<-recode(mydata$BRLABELS,"c('15-19','20-24')='15-24';c('25-29','30-34')='25-34';c('35-39','40-44')='35-44'; c('45-49','50-54')='45-54';c('55-59','60-64')='55-64';c('ISCED 0','ISCED 1','ISCED 2')='ISCED 0-2';c('ISCED 3','ISCED 4')='ISCED 3-4';c('ISCED 5','ISCED 6')='ISCED 5-6'; else ='0'") 

for \ if 루프보다 눈에 친숙하고 시간 차이가 큽니다. 마지막으로 plyr 패키지를 사용하여 원하는 열 (최종 목적)을 추가했습니다.

ddply(mydata,~GEO +VAR +ANSWER +LABELS +BREAKDOWN +BRLABELS ,summarise,VALUE=sum(VALUE)) 

도와 주셔서 감사합니다

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R 문자열 분해 속도 향상

분류에서Dev

중첩 된 ifelse 문 속도 향상-R

분류에서Dev

R의 문자 열 레코딩 속도 향상

분류에서Dev

R : for 루프 속도 향상

분류에서Dev

여러 교체 속도 향상

분류에서Dev

여러 교체 속도 향상

분류에서Dev

R에서 긴 XML 문서를 파싱하는 효율성 / 속도 향상

분류에서Dev

여러 비동기 / 대기 호출의 실행 속도 향상

분류에서Dev

여러 항목에서 Out-File 속도 향상

분류에서Dev

SQL : 여러 기준 검색 속도 향상

분류에서Dev

Gitlab Runner에서 여러 실 설치 속도 향상

분류에서Dev

itertools를 사용하여 속도 향상

분류에서Dev

Matlab, fread, 여러 데이터 유형 및 여러 샘플 속도로 파일 읽기 속도 향상

분류에서Dev

요소 및 네임 스페이스를 사용하여 Pandas로 XML 구문 분석 속도 향상

분류에서Dev

lxml 및 xpath를 사용하여 xml 구문 분석 프로세스 속도 향상

분류에서Dev

여러 내부 및 외부 조인을 사용하여 쿼리 속도 향상

분류에서Dev

R-for 루프와 붙여 넣기 / 붙여 넣기 사이의 조합 속도 향상 0

분류에서Dev

data.table 또는 parellelisation을 사용하여 R에서 임의의 Markov Chain 속도 향상

분류에서Dev

여러 802.11 a / b / n 클라이언트를위한 향상된 속도

분류에서Dev

라이브러리를 컴파일하여 컴파일 속도 향상

분류에서Dev

핑 속도 향상

분류에서Dev

ddply 속도 향상

분류에서Dev

일치하는 문자열 파이썬 속도 향상

분류에서Dev

Pandas : 많은 문자열 검색 속도 향상

분류에서Dev

문자열 필드에서 조인 속도 향상

분류에서Dev

R-샘플링 기능 속도 향상

분류에서Dev

R 루프 내에서 Rcpp 평가 속도 향상

분류에서Dev

R에서 3 for 루프의 속도 향상

분류에서Dev

R 정사각형 행렬의 벡터화 속도 향상

Related 관련 기사

  1. 1

    R 문자열 분해 속도 향상

  2. 2

    중첩 된 ifelse 문 속도 향상-R

  3. 3

    R의 문자 열 레코딩 속도 향상

  4. 4

    R : for 루프 속도 향상

  5. 5

    여러 교체 속도 향상

  6. 6

    여러 교체 속도 향상

  7. 7

    R에서 긴 XML 문서를 파싱하는 효율성 / 속도 향상

  8. 8

    여러 비동기 / 대기 호출의 실행 속도 향상

  9. 9

    여러 항목에서 Out-File 속도 향상

  10. 10

    SQL : 여러 기준 검색 속도 향상

  11. 11

    Gitlab Runner에서 여러 실 설치 속도 향상

  12. 12

    itertools를 사용하여 속도 향상

  13. 13

    Matlab, fread, 여러 데이터 유형 및 여러 샘플 속도로 파일 읽기 속도 향상

  14. 14

    요소 및 네임 스페이스를 사용하여 Pandas로 XML 구문 분석 속도 향상

  15. 15

    lxml 및 xpath를 사용하여 xml 구문 분석 프로세스 속도 향상

  16. 16

    여러 내부 및 외부 조인을 사용하여 쿼리 속도 향상

  17. 17

    R-for 루프와 붙여 넣기 / 붙여 넣기 사이의 조합 속도 향상 0

  18. 18

    data.table 또는 parellelisation을 사용하여 R에서 임의의 Markov Chain 속도 향상

  19. 19

    여러 802.11 a / b / n 클라이언트를위한 향상된 속도

  20. 20

    라이브러리를 컴파일하여 컴파일 속도 향상

  21. 21

    핑 속도 향상

  22. 22

    ddply 속도 향상

  23. 23

    일치하는 문자열 파이썬 속도 향상

  24. 24

    Pandas : 많은 문자열 검색 속도 향상

  25. 25

    문자열 필드에서 조인 속도 향상

  26. 26

    R-샘플링 기능 속도 향상

  27. 27

    R 루프 내에서 Rcpp 평가 속도 향상

  28. 28

    R에서 3 for 루프의 속도 향상

  29. 29

    R 정사각형 행렬의 벡터화 속도 향상

뜨겁다태그

보관