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)