listas - funciones en r studio
Cómo indexar un elemento de un objeto de lista en R (1)
Estoy haciendo lo siguiente para importar algunas tablas txt y mantenerlas como una lista:
# set working directory - the folder where all selection tables are stored
hypo_selections<-list.files() # change object name according to each species
hypo_list<-lapply(hypo_selections,read.table,sep="/t",header=T) # change object name according to each species
Quiero acceder a un elemento específico, digamos hipo_list [1]. Como cada elemento representa una tabla, ¿cómo debo procurar acceder a celdas particulares (filas y columnas)?
Me gustaría hacer algo así:
a<-hypo_list[1]
a[1,2]
Pero me sale el siguiente mensaje de error:
Error in a[1, 2] : incorrect number of dimensions
¿Hay una manera inteligente de hacerlo?
¡Gracias por adelantado!
La indexación de una lista se realiza mediante un paréntesis doble, es decir, hypo_list[[1]]
(p. Ej., hypo_list[[1]]
aquí: http://www.r-tutor.com/r-introduction/list ). BTW: read.table
no devuelve una tabla sino un marco de datos (consulte la sección de valores en ?read.table
). Por lo tanto, tendrá una lista de marcos de datos, en lugar de una lista de objetos de tabla. Sin embargo, el mecanismo principal es idéntico para tablas y marcos de datos.
Nota : En R, el índice para la primera entrada es un 1
(no 0
como en otros idiomas).
Marcos de datos
l <- list(anscombe, iris) # put dfs in list
l[[1]] # returns anscombe dataframe
anscombe[1:2, 2] # access first two rows and second column of dataset
[1] 10 8
l[[1]][1:2, 2] # the same but selecting the dataframe from the list first
[1] 10 8
Objetos de mesa
tbl1 <- table(sample(1:5, 50, rep=T))
tbl2 <- table(sample(1:5, 50, rep=T))
l <- list(tbl1, tbl2) # put tables in a list
tbl1[1:2] # access first two elements of table 1
Ahora con la lista
l[[1]] # access first table from the list
1 2 3 4 5
9 11 12 9 9
l[[1]][1:2] # access first two elements in first table
1 2
9 11