[R] For loop...
Berend Hasselman
bhh at xs4all.nl
Sun Nov 4 16:16:00 CET 2012
On 04-11-2012, at 15:40, Bert Gunter wrote:
> But ...
>
> On Sun, Nov 4, 2012 at 4:24 AM, Berend Hasselman <bhh at xs4all.nl> wrote:
>>
>> On 04-11-2012, at 13:07, SHAILLY MEHROTRA wrote:
>>
>>> Dear R-users,
>>>
>>> I have dataset with column A and B with1000 values,
>>>
>>> For each of column C value (C = seq(1,1000,1), I want to repeat A and B
>>> values and calculate R = A+B*C for each row.
>>>
>>> I want to get output as
>>>
>>> A B C R
>>> 1 10 1 11
>>> 2 30 1 32
>>> 3 50 1 53
>>> 1000 1000 1 2000
>>> 1 10 2 21
>>> 2 30 2 62
>>> 3 50 2 103
>>> 1000 1000 2 3000
>>>
>>> How can I do it using for loop?
>>>
>>
>> You don't do that with a for loop.
>> You can do it like this, assuming your dataset is a data.frame and is named "dat"
>>
>>
>> dat["R"] <- dat["A"] + dat["B"]*dat["C"]
>
> dat[["R"]] <- dat[["A"]] + dat[["B"]]*dat[["C"]]
>
> would be better, I believe.
>
Right.
I insert the reply which was sent to me and not to the R-help list:
>
> I think you misunderstood my question.
>
> In my dataset, I have only two columns.( A and B with 1000 values each).
> I generated a variable C using seq(1,4200,20).
> Now for each value of C, I want to calculate 1000 R values (using 1000 - A and 1000 - B values)
> Finally, I want to have a dataset in which for each C value , I have 1000 R values.
>
> So the final dataset should have 210*1000 rows.
>
> Hope it is clear now.
>
Well try this then:
dat <- read.table(text="
A B
1 10
2 30
3 50
1000 1000
1 10
2 30
3 50
1000 1000", header=TRUE)
dat[,"C"] <- rep(1:2,each=nrow(dat)/2,length.out=nrow(dat))
dat[,"R"] <- unlist(lapply(split(dat,dat$C), FUN=function(x) x$A+x$B*x$C))
dat
Berend
> And the OP would be well-advised to read the Intro to R tutorial
> before posting further on this list.
>
> To quote Rolf Turner on this list:
>
> " Learn something about R; don't just hammer and hope. Read the
> introductory manuals and scan the FAQ.."
>
> -- Bert
>
>>
>> dat[,"R"] <- dat[,"A"] + dat[,"B"]*dat[,"C"]
>>
>> Read the R intro manual.
>>
>> Berend
More information about the R-help
mailing list