I want to create a new column to a data frame using a formula from another variable.
Example:
I have a data set "aa" is;
x y 2 3 4 5 6 7
My R code is;
>bb <- "x+y-2" >attach(aa) >aa$z<- bb >detach(aa)
the result is;
x y z 2 3 x+y-2 4 5 x+y-2 6 7 x+y-2
but I want like this;
x y z 2 3 3 4 5 7 6 7 11
Could you please help me..
Using apply() method If you need to apply a method over an existing column in order to compute some values that will eventually be added as a new column in the existing DataFrame, then pandas. DataFrame. apply() method should do the trick.
To add a new column to a dataframe in R you can use the $-operator. For example, to add the column “NewColumn”, you can do like this: dataf$NewColumn <- Values . Now, this will effectively add your new variable to your dataset.
If you want to evaluate an expression in the context, of a data frame, you can use with
and within
.
aa$z <- with(aa, x + y - 2)
or
aa <- within(aa, z <- x + y - 2)
Or, if your expression is in the form of a text string (you should see if there are other ways to write your code; evaluating arbitrary text strings can lead to lots of problems):
aa$z <- eval(parse(text="x + y - 2"), aa)
You should probably read some basic tutorials on R other than An Introduction to R as despite what is written there the $
notation is more sensible and easier to understand than attach/detach
. Try this in the meantime.
aa <- data.frame(x = c(2, 4, 6), y = c(3, 5, 7))
Which gives:
> aa x y 1 2 3 2 4 5 3 6 7
Then enter:
aa$z <- (aa$x + aa$y) - 2
Which gives:
> aa x y z 1 2 3 3 2 4 5 7 3 6 7 11
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With