2016-09-14 8 views
0

データがありhttp://open.canada.ca/data/en/dataset/b52664cf-bfd9-49ad-849a-cb88c92553b9(英語版)

glacier <- read.csv("glacier.csv", stringsAsFactors = F) 
str(glacier) 
'data.frame': 518 obs. of 6 variables: 
$ Ref_Date : int 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 ... 
$ GEO  : chr "Helm Glacier - southern Coast Mountains (Garibaldi Provincial Park), British Columbia" "Helm Glacier - southern Coast Mountains (Garibaldi Provincial Park), British Columbia" "Helm Glacier - southern Coast Mountains (Garibaldi Provincial Park), British Columbia" "Helm Glacier - southern Coast Mountains (Garibaldi Provincial Park), British Columbia" ... 
$ MEASURE : chr "Annual mass balance" "Annual mass balance" "Annual mass balance" "Annual mass balance" ... 
$ Vector : chr "v54326054" "v54326054" "v54326054" "v54326054" ... 
$ Coordinate: num 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 ... 
$ Value  : chr "-1460.0" "-780.0" "-2730.0" "-940.0" ... 

tapply(X = as.numeric(glacier[glacier$MEASURE == "Annual mass balance", c("Value")]), 
         INDEX = unique(glacier[ , 2]), FUN = median, na.rm = T) 

はエラーになりますから取られましたдлину 私は、引数をチェックしましたし、彼らはtapply機能のために非常に正常思わないアイデアは、何が間違っていなかった感謝を事前にEDIT

:。。。

tapply(X = as.numeric(glacier[glacier$MEASURE == "Annual mass balance", c("Value")]), 
         INDEX = glacier[ , 2], FUN = median, na.rm = T) 

同じエラーが発生する

+0

ロシアのエラーメッセージが何と言っていますか(?)? – jochen

+0

'INDEX'は' tapply'の 'X'と同じ長さになっています。だから 'ユニーク'を削除してみてください。 – aosmith

+0

私はタイトルで "argsが不等長である"と翻訳しました –

答えて

0

氷河のデータフレームをサブセット化しようとしていますが、1つ以上の要素がglacier$Measure !="Annual mass balance"にあると考えられます。したがって、glacier[glacier$MEASURE == "Annual mass balance", c("Value")]の列の長さは、glacier[ , 2]の長さと等しくありません。これが当てはまる場合は、インデックスをサブセット化する必要もあります。ここで

可読性を向上させるために、あなたのデータのサブセットを作成してソリューションです:

glacier <- read.csv("01530102-eng.csv", stringsAsFactors = F) 

glacierreduced<-glacier[glacier$MEASURE == "Annual mass balance",] 
tapply(X = as.numeric(glacierreduced$Value), INDEX = glacierreduced[ , 2], 
     FUN = median, na.rm = T) 
関連する問題