R 如何将bind_行与TIBLE一起使用?

R 如何将bind_行与TIBLE一起使用?,r,tidyverse,tidyr,R,Tidyverse,Tidyr,我正在尝试使用tidyverse的bind_rows和tibble,并获得了意想不到的结果 当我将多个数据帧与bind_rows组合,然后将它们转换为tible时,列名会变得混乱: library(tidyr) pred.models <- c('1.csv', '2.csv', '3.csv') prediction.slides <- list() for (modelid in pred.models){ tmp <- read.csv(modelid) tmp[

我正在尝试使用tidyverse的bind_rows和tibble,并获得了意想不到的结果

当我将多个数据帧与
bind_rows
组合,然后将它们转换为
tible
时,列名会变得混乱:

library(tidyr)
pred.models <- c('1.csv', '2.csv', '3.csv')
prediction.slides <- list()
for (modelid in pred.models){
  tmp <- read.csv(modelid)
  tmp[,'modelid'] <- modelid
  prediction.slides[[length(prediction.slides)+1]] <- (tmp)
}

prediction.slides <- (bind_rows(prediction.slides))
typeof(prediction.slides)
# -> list
# now let's see what we got:
prediction.slides
# -> `bind_rows(prediction.slides)`$hash      $class_prob $modelid 

原因是
tibble()
没有做您认为它能做的事情。您需要将
改为_tible()
tibble()
用于从给定的输入构建data.frames,而
as_tibble()
将输入转换为您想要的tibble。

您能提供一个csv文件的示例吗?@Phil请参阅UpdateWold
库(tidyverse);这是一个反直觉的设计决策,但似乎解决了它!
pred.models <- c('1.csv', '2.csv', '3.csv')
prediction.slides <- list()
for (modelid in pred.models){
  tmp <- read.csv(modelid)
  tmp[,'modelid'] <- modelid
  ############################################  Changed here:
  prediction.slides[[length(prediction.slides)+1]] <- tibble(tmp)
}

prediction.slides <- (bind_rows(prediction.slides))
hash,class_prob
1578d8,0.9451976000
1c7644,0.4519760001
dc7358,0.5197600012