1

という名前の列を持つ大きなデータフレーム df があります。

age, income, country

私がやりたいことは、実際には非常に単純です。

fitFunc<-function(thisCountry){
    subframe<-df[which(country==thisCountry)];
    fit<-lm(income~0+age, data=subframe);
    return(coef(fit));
}

個々の国ごとに。次に、結果を次のような新しいデータ フレームに集約します。

    countryname,  coeffname
1      USA         1.2
2      GB          1.0
3      France      1.1

私はやろうとしました:

do.call("rbind", lapply(allRics[1:5], fitit))

しかし、次に何をすべきかわかりません。

誰でも助けることができますか?

ありがとう!

4

3 に答える 3

2

これはうまくいきますか?

    set.seed(1)
    df<-data.frame(income=rnorm(100,100,20),age=rnorm(100,40,10),country=factor(sample(1:3,100,replace=T),levels=1:3,labels=c("us","gb","france")))

    out<-lapply(levels(df$country) , function(z) {
        data.frame(country=z, age= coef(lm(income~0+age, data=df[df$country==z,])),row.names=NULL)
    })
do.call(rbind ,out)
于 2013-05-19T11:35:32.300 に答える