2015-02-06 9 views
-1

부분 집합 내에서 조작 하위 집합 : 내가하고 싶은 것은데이터 조작 -이 보이는 데이터를 포함하는 대규모 데이터 프레임이

customer usage hour day temp 
5   0.13 07  14 59 
5   0.12 07  14 51 
5   0.11 08  14 53 
5   0.19 09  15 56 
12   0.19 07  15 60 
12   0.13 07  14 50 
12   0.13 07  14 40 
9   0.16 08  03 47 
9   0.16 08  15 59 
9   0.17 08  15 53 

이며, 각 고객에 대해, 각각의 시간 동안 자신의 사용을 추가를 일별로 구분 된 각 시간의 평균 온도를 나타냅니다. 다시 말해 고객의 각 하위 집합 내에서 각 시간과 매일 '사용량'합계와 '임시'평균값을 원합니다. 따라서이 샘플 코드의 경우 이상적인 출력은

customer SumUsage hour day Averagetemp 
5   0.25  07  14 55 
5   0.11  08  14 51 
5   0.11  09  15 56 
12   0.19  07  15 60 
12   0.26  07  14 45 
9   0.16  08  03 47 
9   0.33  08  15 56 

입니다. 희망이 있습니다. 나는 R에 익숙하지 않고 제대로 작동하지 않을 것 같습니다. 출력에서 한 번 더 원했던 것을 다시 강조하기 위해 : 각 고객은 한 달에 여러 날에 여러 번 '사용'결과물을 시간당 여러 번 사용합니다. 각 '사용량'출력에 대한 '임시'표시가 있습니다. 나는 고객 당 한 시간 같은 모든 것을 결합하고 싶다. 하루 동안의 각 고객에 대해 하루 중 매 시간마다 모든 시간대의 '사용량'출력의 합계와 모든 출력의 평균 '온도'가 있어야합니다.

답변

1

당신은 dplyr에서 summarise를 사용할 수 있습니다

require(dplyr) 
df %>% 
    group_by(customer, day, hour) %>% 
    summarise(SumUsage = sum(usage), Averagetemp = mean(temp)) 

또는를 사용하여 data.table

require(data.table) 
setDT(df)[, list(SumUsage = sum(usage), 
       Averagetemp = mean(temp)), by = list(customer, day, hour)]