Hi Bert,
I think you missed my clarification on the question, which I by mistake
posted to the person who replied. Sorry about that.
I think by reading my clarifiaction you will understand that I am not just
"hammering and hoping". I have a valid question.
Thanks
Shailly
On Sun, Nov 4, 2012 at 10:16 AM, Berend Hasselman <b...@xs4all.nl> wrote:

>
> On 04-11-2012, at 15:40, Bert Gunter wrote:
>
> > But ...
> >
> > On Sun, Nov 4, 2012 at 4:24 AM, Berend Hasselman <b...@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
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to