2016-06-22 2 views
0

나누기의 지수로 일련의 열을 추가하고 싶습니다. 내 dataframe은 다음과 같습니다나누기의 지수가있는 여러 열을 추가하는 함수를 작성하십시오.

views01 users01 views02 users02 
    2  4  4  1    
    4  5  11  2    
    5  2  9  4    

내가 분할 뷰 (N)/사용자 (n)을 계산하고 DF에 열을 추가, 그래서 같은 코드의 조각 쓰고 싶습니다

views01 users01 views02 users02 views_per_user01 views_per_user02 
    2  4  4  1   0.5    4 
    4  5  11  2   0.8    5.5 
    5  2  9  4   2.5    2.25 
을 각 경우에 대한

df$views_per_user01=df$views01/df$users01 
df$views_per_user02=df$views02/df$users02 

,하지만 난 한 줄에 축소 싶습니다 시간 동안

은 그 같은 코드의 라인을 만들었습니다, 인. 감사합니다.

+0

하나를 당신이 이것을하고 싶은 특정한 언어? – Kusalananda

+1

죄송합니다. 제목을 수정했습니다. –

답변

0

방법 중 하나는 데이터 프레임이 당신의 예에 따라 정렬됩니다 가정 할,

cbind(df, sapply(unique(sub('\\D+', '', names(df))), 
         function(i) Reduce('/', df[,grepl(i, sub('\\D+', '', names(df)))]))) 

# views01 users01 views02 users02 01 02 
#1  2  4  4  1 0.5 4.00 
#2  4  5  11  2 0.8 5.50 
#3  5  2  9  4 2.5 2.25 
+1

그래, 그게 내가 찾고 있었던거야. 감사 –

0

당신은 새 열을 추가 할 dplyrmutate 기능을 사용할 수 있습니다 :

library(dplyr) 
mutate(df, views_per_user01=views01/users01,     
      views_per_user02=views02/users02)