Estoy tratando de combinar una cantidad de dataframes usando rbind. Si llamo o directamente rbind no hay ningún problema:perdiendo dataframe al usar do.call
> test <- rbind(x)
> is.data.frame(x)
[1] TRUE
Sin embargo, si uso do.call
me encuentro con un problema en el que se contraen mis columnas de caracteres y la trama de datos se convierte en una matriz.
>test <- do.call("rbind", x)
> is.data.frame(test)
[1] FALSE
Según el? Documentación rbind Traté add stringsAsFactors = FALSE
pero ningún cambio en el comportamiento. Mis tablas de datos tienen el siguiente aspecto:
ID sequence descriptor
1 aaacccttt g12
2 actttgtgt e34
3 tttgggctc b12
4 ccgcgcgcg c12
… … ...
y la salida rbind se parece a esto, pero la salida do.call("rbind", x)
aparece como sigue, donde la columna de la secuencia ya no es un personaje:
ID 363 426 91
Sequence 98 353 100
descriptor g12 b12 c12
me gustaría para usar do.call porque estoy recorriendo un conjunto de dataframes para consolidarlos usando un script a continuación. Otra respuesta útil podría ofrecer una solución alternativa sobre cómo combinar múltiples marcos de datos mientras los llama en un bucle.
stringsAsFactors = FALSE
dfs <- as.list(ls(pattern="Data_"))
for (i in 1:length(dfs)) {
x <- get(as.character(dfs[i]))
AllData <- do.call("rbind", x)
}
dfs
es la lista de tramas de datos en mi ambiente de trabajo y tengo la trama de datos real utilizando get
gracias.
que es una respuesta increíble. – zach