我会使用data.table的rbindlist函数...
由于此功能需要列表作为输入,因此您将自动失去字符因子问题...
rbindlist还具有一些使生活更轻松的功能(而且它也非常快!)
l <- list( stuff = stuff, stuff2 = stuff2 )
library(data.table)
rbindlist( l, use.names = TRUE )
当您需要更多功能时,更好的东西就会出现...比如说您想知道哪些数据来自哪个df...这时候就要用到名称列表。
rbindlist( l, use.names = TRUE, idcol = TRUE )
或者,当不是所有的列名都在所有的数据框中出现时:
col2 <- c('1','2', '3')
stuff2 <- data.frame(col2)
rbindlist( l, use.names = TRUE, fill = TRUE, idcol = "origin" )
如果列名不同,但仍希望将两个数据框合并到一列中:
col1 <- c(1,2,3)
stuff <- data.frame(col1)
col2 <- c('1','2', '3')
stuff2 <- data.frame(col2)
l <- list(stuff = stuff, stuff2 = stuff2)
rbindlist( l )
list(stuff, stuff2) %>% map_df( ~ .x %>% mutate(col1 = as.numeric(as.character(col1))))
吗? - akrunstuff %>% mutate_all(funs(type.convert(as.character(.), as.is = TRUE)))
,即如果我们有一个数据框列表,则使用上面的map
,例如list(stuff, stuff2) %>% map_df( ~ .x %>% mutate_all(funs(type.convert(as.character(.), as.is = TRUE))))
。 - akrun