だから私はこれを理解するのに苦労してきました。私はまだRにはまだ新しく、まだここで解決策を見つけていません。大きなデータフレームリストを持つデータフレームの列にアクセスするR
私はこのようになりますdata.frame
を持っている:
LandAverageTemperature LandAverageTemperatureUncertainty date year
1 3.0340000000000003 3.574 1750-01-01 1750
2 3.083 3.702 1750-02-01 1750
3 5.626 3.076 1750-03-01 1750
4 8.49 2.451 1750-04-01 1750
5 11.573 2.072 1750-05-01 1750
6 12.937000000000001 1.724 1750-06-01 1750
それでは、私がやりたいことはある:毎年のために、私はLandAverageTemperature
列の平均値を取得したいです。
split
機能を使ってこれを実行しようとした:私は266個の要素(1750年から2016年までの各年の1)の大規模なリストを残し
df_list <- split(cleanGlobalTemps, f = cleanGlobalTemps$year)
を。このリストの各dataframe
をループして、LandAverageTemperature
列の平均値を取得したいとします。
私はこの試みた:
for(i in 1:length(df_list)){
averageYearlyGlobalTemp[i] <- mean(as.double(df_list[[i]][[1]]), na.rm = TRUE)
}
をしかし、それは動作しません、それは次のような結果を返しますように
> averageYearlyGlobalTemp
[1] 1320.1667 709.6667 973.1667 1319.7500 1120.9167 1300.2500 1368.9167 1365.7500 1133.5833 1335.8333 1056.8333
[12] 1336.4167 1543.8333 1004.5000 1139.7500 1435.0000 1404.8333 1288.7500 1239.6667 1282.7500 1345.9167 1313.1667
[23] 1469.5000 1273.2500 1151.7500 1304.0000
....と。
これは本当に有望ですね。 1つの問題は、mean関数を介してna.rm = TRUEパラメータを渡す方法です。私の結果はすべてこのメソッドではNAであるからです。 – Coderman
これを関数に追加するだけでいいはずです 'aggregate(cleanGlobalTemps $ LandAverageTemperature、by = list(cleanGlobalTemps $ year)、FUN =平均、na.rm = TRUE)' –
それはちょうどその後に私に起こった私はそれを試しましたが、残念ながらサイコロはありませんでした。 – Coderman