Si te encuentras con alguna parte que no entiendes nos puedes dejar un comentario y trataremos de ayudarte lo más rápido posible.
Solución:
Prueba esto:
list<-list("Var1", "Var2", "Var3")
df1 <- data.frame("Var1" = 1:2, "Var2" = c(21,15), "Var3" = c(10,9))
df2<- data.frame("Var1" = 1, "Var2" = 16, "Var3" = 8)
#Sum
df1$Var4<- df1[,list[[1]]]+df2[,list[[1]]]
Var1 Var2 Var3 Var4
1 1 21 10 2
2 2 15 9 3
Para seguir con el razonamiento de la respuesta obviamente correcta de Duck, su enfoque no funciona por dos razones:
- los
$
El operador "no permite índices calculados", por lo que no puede pasarle un vector de caracteres. Verhelp(`$`)
.
`$`(df1,"Var1")
#[1] 1 2
`$`(df1,list[[1]])
#Error in df1$list[[1]] : invalid subscript type 'language'
- Estabas tratando de subconjunto
df1
con una lista Necesitas un vector de caracteres.
list[1]
#[[1]]
#[1] "Var1"
class(list[1])
#[1] "list"
los [[
operator selects an individual element from a list. In this case, the character vector you needed.
list[[1]]#[1] Clase "Var1" (lista[[1]]) #[1] "personaje"
Puedes probar el siguiente código
df1$Var4 <- Map(`+`,df1,df2)[[lst[[1]]]]
tal que
> df1
Var1 Var2 Var3 Var4
1 1 21 10 2
2 2 15 9 3
valoraciones y reseñas
Si te apasiona la informática, tienes el poder dejar un ensayo acerca de qué te ha impresionado de este artículo.
¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)