244個のデータフレームを含むリストがあります。このリストはdと呼ばれ、d[[1]]
はこのようになります。forループを集計する際にエラーメッセージが表示される
d[[1]]
year pos days sal
1 2009 A 31 2000
2 2009 B 60 4000
3 2009 C 10 600
4 2010 B 10 1000
5 2010 D 90 7000
私はグループ年間でデータを、日とSAL、および日数は、グループ内の最大値である選択POS追加したいと思います。
結果は次のようである:
year pos days sal
1 2009 B 101 6600
2 2010 D 100 8000
私はそれだけで1つのデータフレームにそれをやった場合に来るとき、これを行う方法を知っています。 私はそれをこのようでした:
library(dplyr)
ygroup<-group_by(d[[1]]$year)
summarise(ygroup, pos = pos[which.max(days)], days = sum(days), sal = sum(sal))
をしかし、私は、リストdの244枚のデータフレームに、この同じ操作をしたいです。 私はこれを試しました:
e<-list()
ygroup<-list()
for(i in 1:244){
ygroup[[i]]<-group_by(d[[i]]$year)
e[[i]]<-summarise(ygroup[[i]], pos = pos[which.max(days)], days = sum(days), sal = sum(sal))
}
しかし、これは動作しません、エラーが表示されます。
Error: expecting a single value
(私はこの部分だと思う; pos = pos[which.max(days)]
が問題を作っているが、私はそれはわからない...)私はこれをどのように解決することができ ...?
すべてのコメントをいただければ幸いです! :)
をループへの匿名関数呼び出しで
lapply
を使用することができますsal = sum(sal))) ''%s 'は、 ''%s' ''%s ' – akrun