r dataframe

Creando una nueva columna a un marco de datos usando una fórmula de otra variable



dataframe (3)

Probablemente debería leer algunos tutoriales básicos en R que no sean Introducción a R, ya que a pesar de lo que está escrito allí, la notación de $ es más sensible y fácil de entender que attach/detach . Intenta esto mientras tanto.

aa <- data.frame(x = c(2, 4, 6), y = c(3, 5, 7))

Lo que da:

> aa x y 1 2 3 2 4 5 3 6 7

Luego ingrese:

aa$z <- (aa$x + aa$y) - 2

Lo que da:

> aa x y z 1 2 3 3 2 4 5 7 3 6 7 11

Quiero crear una nueva columna para un marco de datos usando una fórmula de otra variable.
Ejemplo:
Tengo un conjunto de datos "aa" es;

x y 2 3 4 5 6 7

Mi código R es;

>bb <- "x+y-2" >attach(aa) >aa$z<- bb >detach(aa)

el resultado es;

x y z 2 3 x+y-2 4 5 x+y-2 6 7 x+y-2

pero quiero así;

x y z 2 3 3 4 5 7 6 7 11

Me podría ayudar..


Puedes usar mutate del paquete dplyr.

library(dplyr) aa <- aa %>% mutate(z = x+y-2)

Espero eso ayude.


Si desea evaluar una expresión en el contexto, de un marco de datos, puede usar with y within .

aa$z <- with(aa, x + y - 2)

o

aa <- within(aa, z <- x + y - 2)

O, si su expresión tiene la forma de una cadena de texto (debería ver si hay otras formas de escribir su código; la evaluación de cadenas de texto arbitrarias puede llevar a muchos problemas):

aa$z <- eval(parse(text="x + y - 2"), aa)