2013-12-09 8 views
3

저는 R 신예입니다. 분할 된 데이터 프레임에 대해 meansd을 계산하기위한 간단한 sapply 함수 예제가 있습니다. 내 데이터에는 방향으로 30 분의 바람 속도가 포함되어 있습니다. 저는 13 년간 제 연구를 위해 매일와 이블 분포를 알고 싶습니다. 이것이 내 데이터 집합이 시간을 기준으로 분할 된 이유입니다.R에서 "sapply"를 한 함수에서 여러 코드와 함께 어떻게 적용 할 수 있습니까?

내 데이터는 다음과 같습니다

Time    windspeed direction Date   day_index 
1 24/07/2000 13:00 31  310 2000-07-24 13:00:00 2000_206 
2 24/07/2000 13:30 41  320 2000-07-24 13:30:00 2000_206 
3 24/07/2000 14:30 37  290 2000-07-24 14:30:00 2000_206 
4 24/07/2000 15:00 30  300 2000-07-24 15:00:00 2000_206 
5 24/07/2000 15:30 24  320 2000-07-24 15:30:00 2000_206 
6 24/07/2000 16:00 22  330 2000-07-24 16:00:00 2000_206 
7 24/07/2000 16:30 37  270 2000-07-24 16:30:00 2000_206 

나는 위해이 예제 R의 코드 일 동안보고 분할 신청이다 :

my.summary <- sapply(split(ballarat_alldata[1:200, ], 
          ballarat_alldata$day_index[1:200]), 
        function(x) { 
         return(c(my.mean=mean(x$windspeed), 
            my.sd=sd(x$windspeed))) 
        }) 

이블 분포 코드 모양을 계산하고, 스케일 매개 변수는 다음과 같습니다.

set1 <- createSet(height=10, 
        v.avg=ballarat_alldata[,2], 
        dir.avg=ballarat_alldata[,3]) 
time_ballarat <- strptime(ballarat_alldata[,1], "%d/%m/%Y %H:%M") 
ballarat <- createMast(time.stamp=time_ballarat, set1) 
ballarat <- clean(mast=ballarat) 
ballarat.wb <- weibull(mast=ballarat, v.set=1, print=FALSE) 

R 대구 매일 Weibull 매개 변수를 계산하고 행렬에 저장 하시겠습니까?

여러 방법을 시도했지만 제대로 작동하지 않습니다.
두 세트의 R 코드를 결합하면 풍속과 방향 범위를 set1 <- createSet(height=10, v.avg=ballarat_alldata[,2], dir.avg=ballarat_alldata[,3])으로 변경해야합니까?

+0

첫 단계 : 데이터 프레임을 'day_index'로 나눕니다. 하나의 가능성은'aggregate (ballarat_alldata, by = ballarat_alldata $ day_index, FUN = {여기서 당신의 weibull 함수를 채워라})' –

답변

1

여기에 2 가지 문제가있는 것처럼 보입니다. 1) 데이터 집계 2)와 이블 매개 변수 계산. 당신은, 당신은 또한 plyr 라이브러리에서 summarise을 사용할 수 있습니다 당신이 매개 변수를 계산하는 방법에 나에게

같은 것을 힌트를 조금 더주는 경우에

library(plyr) 
Wind <- ddply(Wind, .(as.Date(Date)), transform, 
Wind.mean = mean(windspeed), Wind.sd = sd(windspeed)) 
#  windspeed direction  Date2 Time2 day_index Wind.mean Wind.sd 
#  1  31  310 2000-07-24 13:00:00 2000_206 36.33333 5.033223 
#  2  41  320 2000-07-24 13:30:00 2000_206 36.33333 5.033223 
#  3  37  290 2000-07-24 14:30:00 2000_206 36.33333 5.033223 
#  4  30  300 2000-07-25 15:00:00 2000_206 28.25000 6.751543 
#  5  24  320 2000-07-25 15:30:00 2000_206 28.25000 6.751543 
#  6  22  330 2000-07-25 16:00:00 2000_206 28.25000 6.751543 
#  7  37  270 2000-07-25 16:30:00 2000_206 28.25000 6.751543 

: 첫 번째 질문에 대해 내가 좋아하는 무언가를 추천 할 수 있습니다

ddply(Wind, .(Date2), summarise, rweibull(# I'm not sure what goes here 

희망이 도움이됩니다.