Я пытаюсь использовать bind_rows и tibble из tidyverse и получаю неожиданные результаты.
Когда я объединяю несколько фреймов данных с bind_rows
, а затем преобразовываю их в tibble
, имена столбцов портятся up:
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
Однако, когда я пытаюсь выполнить следующее:
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))
Я получаю сообщение об ошибке Error: Argument 1 can't be a list containing data frames
в последней строке. Что очень странно, учитывая, что bind_rows
предназначен для объединения списка фреймов данных в соответствии с документами.
Любая идея, как сделать это правильно и получить хороший вывод в виде вывода?
UPD: CSV-файлы выглядят следующим образом:
hash,class_prob
1578d8,0.9451976000
1c7644,0.4519760001
dc7358,0.5197600012