Me enfrento al siguiente desafío:
Tengo una lista de marcos de datos en R y me gustaría extraer información específica de ella. Aquí hay un ejemplo:
df_1 <- data.frame(A = c(1,2), B = c(3,4), D = c(5,6))
df_2 <- data.frame(A = c(7,8), B = c(9,10), D = c(11,12))
df_3 <- data.frame(A = c(0,1), B = c(2,3), D = c(4,5))
L <- list(df_1, df_2, df_3)
Lo que me gustaría extraer son los valores en la posición (1,1) en cada uno de estos marcos de datos. En el caso anterior, esto sería: 1, 7, 0.
¿Hay alguna forma de extraer esta información fácilmente, probablemente con una línea de código?
2 respuestas
Como ha sugerido Ronak, puede usar una función como lapply y envolverla con unlist para la salida deseada.
unlist(lapply(L,function(x) x[1,1]))
Además de los métodos *apply
que se muestran arriba, también puede hacer esto de manera vectorizada. Dado que todos los marcos de datos en su lista tienen los mismos nombres de columna, y desea el primer elemento de la primera columna, es decir, 'A1', entonces puede simplemente unlist
(que creará un vector con nombre) y tomar el valores con el nombre A1
.
v1 <- unlist(L)
v1[names(v1) == 'A1']
#A1 A1 A1
# 1 7 0
Nuevas preguntas
r
R es un entorno de software y lenguaje de programación de código abierto y gratuito para computación estadística, bioinformática, visualización y computación en general. Proporcione ejemplos mínimos y reproducibles junto con el resultado deseado. Use dput () para los datos y especifique todos los paquetes no base con llamadas a library (). No incruste imágenes para datos o código, use bloques de código con sangría en su lugar. Para preguntas relacionadas con estadísticas, use https://stats.stackexchange.com.