Saltar al contenido

Usando un string de una lista para seleccionar una columna en R

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:

  1. los $ El operador "no permite índices calculados", por lo que no puede pasarle un vector de caracteres. Ver help(`$`).
`$`(df1,"Var1")
#[1] 1 2

`$`(df1,list[[1]])
#Error in df1$list[[1]] : invalid subscript type 'language'
  1. 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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *