[R] [FORGED] store result of loop in df

Ivan Calandra ivan.calandra at univ-reims.fr
Fri Jul 29 11:33:53 CEST 2016


Le 29/07/2016 à 11:20, Rolf Turner a écrit :
> On 29/07/16 20:52, Alain D. via R-help wrote:
>> Dear list,
>>
>> I have a dataframe df:
>>
>> df<-data.frame(x=c(5,32,18,3,17), n=c(11,200,432,20,60))
>>
>> Now I want to run n=nrow binom.test() with x being the number of 
>> success and n
>> the number of trials and then store the results as a new VAR in df.
>>
>> I tried
>>
>>   for (i in 1:nrow(df)){
>>   df$VAR<-(binom.test(df[i,1],df[i,2],0.065))$estimate[[1]]
>> }
>>
>> but bin does only contain the last result.
>>
>> What is wrong with my code? Can anyone help?
>
> Try:
>
> for (i in 1:nrow(df)){
>   df$VAR[i] <- binom.test(df[i,1],df[i,2],0.065)$estimate[[1]]
> }
>
> (Actually I was amazed that this works without initializing df$VAR, 
> but it *does* work!  There is no limit to the wondrous nature of R!)
I was so sure that it wouldn't work that I haven't even tried!
>
> BTW -- calling your data frame "df" is a bad idea.  There is a built-in
> function named "df", and on occasion the result of naming some other 
> object "df" can be mysterious errors accompanied by opaque error 
> messages.
>
> cheers,
>
> Rolf Turner
>



More information about the R-help mailing list