2017-08-22 4 views
0

マイデータフレームは異なる変数を持つ時系列で、1966年から始まるdplyrは

Date prcpmm TmaxC TminC 
1/1/1966 0 7.8 0 
1/2/1966 0.8 8.3 -1.1 
1/3/1966 0 2.8 -5 
1/4/1966 0 4.4 -5.6 
1/5/1966 0 5.6 -8.9 
1/6/1966 0 2.2 -1.7 
1/7/1966 0.5 0.6 -12.8 
1/8/1966 0 -6.1 -15 
1/9/1966 0 3.9 -8.3 
1/10/1966 0 5 -8.9 
1/11/1966 0 -5 -12.2 
1/12/1966 1 -3.3 -11.1 
1/13/1966 1.3 2.2 -6.1 

ように見えるまとめることができませんブローコード:

Adrian <- read.csv("~/Adrian.csv") 

Adrian <- cbind(Adrian, weatherGen = rep("ObservedAdrian", nrow(Adrian))) 
dateObj <- as.POSIXct(Adrian$Date, format = "%m/%d/%Y") 

Adrian$Date <- dateObj 
Adrian$day <- day(dateObj) 
Adrian$month <- month(dateObj) 
Adrian$year <- year(dateObj) 
Adrian$prcpmm[Adrian$prcpmm==-99.00]<- NA 
Adrian$TmaxC[Adrian$TmaxC==-99.00]<- NA 

Adrian$TminC[Adrian$TminC==-99.00]<- NA 

for (i in 1:length(Adrian$month)) { 
if (Adrian$month[i] %in% 3:5) { 
Adrian$season[i] = "spring" 
Adrian$yearNew[i] = Adrian$year[i] 
} else if (Adrian$month[i] %in% 6:8) { 
Adrian$season[i] = "summer" 
Adrian$yearNew[i] = Adrian$year[i] 
} else if (Adrian$month[i] %in% 9:11) { 
    Adrian$season[i] = "fall" 
    Adrian$yearNew[i] = Adrian$year[i] 
} else{ 
    Adrian$season[i] = "winter" 
    Adrian$yearNew[i] = Adrian$year[i] + 1 
} 
} 
Adrian$season <- ordered(Adrian$season, levels = c("winter", "spring", 
"summer", "fall")) 

この部分は間違いなく非常にうまく実行されました。

コード行に上から
Observed_everyseason_pVal <- Adrian %>% group_by(yearNew, season) %>% 
summarise(pvalMK = mk.test(ts(prcpmm))$pvalue[1], SMK = 
mk.test(ts(prcpmm))$Sg[1]) 
Observed_everyseason_pVal1 <- Adrian %>% group_by(season) %>% 
    summarise(pvalMK = mk.test(ts(prcpmm))$pvalue[1], SMK = 
    mk.test(ts(prcpmm))$Sg[1]) 

Observed_everyseason_pVal <- Adrian %>% group_by(yearNew, season) 

それはエラーなしでうまく働いたが、私は

Observed_everyseason_pVal <- Adrian %>% group_by(yearNew, season) %>% 
    summarise(pvalMK = mk.test(ts(prcpmm))$pvalue[1], SMK = 
    mk.test(ts(prcpmm))$Sg[1]) 

を実行すると、エラー生成します。場合

Error in summarise_impl(.data, dots) : Column pvalMK is of unsupported type NULL

+0

あなたが適用している関数の出力は、NAではないということです。これは 'mk.test'があなたの作業環境で利用できないこと(ライブラリがロードする必要があるかもしれません)、またはデータが関数のための正しいフォーマットでないことを意味するかもしれないので、Nullの戻り値を投げています。あなたのgroup_byを実行し、それを変数に保存し、 'str(myGroupby) 'で出力を見て、それがどのように見えるかを見てください。データが要約の関数に適切であれば、 'mk.test(ts(prcpmm))$ pvalue [1]'を使って従来の操作を行い、何が起こるかを見てください。 – sconfluentus

答えて

0

をあなたはstr(mk.test(ts(Adrian$prcpmm)))、それを行うアイヴスは、次のような出力:

List of 9 
$ data.name : chr "ts(Adrian$prcpmm)" 
$ p.value : num 0.259 
$ statistic : Named num 1.13 
    ..- attr(*, "names")= chr "z" 
$ null.value : Named num 0 
    ..- attr(*, "names")= chr "S" 
$ parameter : Named int 13 
    ..- attr(*, "names")= chr "n" 
$ estimates : Named num [1:3] 16 176.67 0.28 
    ..- attr(*, "names")= chr [1:3] "S" "varS" "tau" 
$ alternative: chr "two.sided" 
$ method  : chr "Mann-Kendall trend test" 
$ pvalg  : num 0.259 
- attr(*, "class")= chr "htest" 

したがって、あなたが指定した元のオブジェクトは、すなわちmk.test(ts(prcpmm))$pvalue[1]、doesn't存在します。 mk.test(ts(prcpmm))$p.value[1]のみです。また、オブジェクトmk.test(ts(prcpmm))$Sg[1]...$Sg)は全く対象外です。これはエラーを説明します:Error in summarise_impl(.data, dots) : Column pvalMK is of unsupported type NULL