Пропущенные данные после чтения в df с добавлением элементов из paste (x, collapse = ";") - PullRequest
0 голосов
/ 07 мая 2019

В конце скрипта я сохраняю много результатов в однострочном векторе и добавляю его в CSV-файл.Одним из результатов является строка из одной ячейки, содержащая сжатые предсказанные значения через точку с запятой ";".Это начало испытывать трудности, когда некоторые прогнозируемые значения являются отрицательными (я думаю), когда это происходит, просто не включаются все прогнозируемые значения.Кажется, это происходит чаще, когда первое значение отрицательное.

С этими примерами данных, это происходит со мной каждый раз, около 15-го или 16-го значения.

#create a blank csv
write.csv(x= data.frame(year=NA, location=NA, side=NA, bias=NA, test_predicted=NA, observed=NA, adj_r2=NA)[-1,], file="Results/my_save_file.csv", row.names = FALSE)

#do this a more than a thousand times
for(i in c(5:1005)){
#dummy data
set.seed(45+i)
test_predic_data <- data.frame(testset=c(1:4), observed=rnorm(mean=8,sd=2,n=80), test_predicted=rnorm(mean=8, sd=10,n=80))
year<-(2016 + i)
location <- "outdoors"
side<-"left"
bias<-0.00658
adj_r2<-0.21

#make negative the begining observation
test_predic_data[1,3] <- test_predic_data[1,3]*-1

#compile results
result_line<-paste(year, 
                   location,
                   side,
                   bias,
                   paste0(test_predic_data$test_predicted, collapse=";"),
                   paste0(test_predic_data$observed, collapse=";"),
                   adj_r2, 
                   sep=",")
#then I save the result line (to my already created csv) by appending it to the #bottom:
write(result_line,file="Results/my_save_file.csv",append=TRUE)
}

ОБНОВЛЕНИЕ: С моим реальным набором данных я могу проверить ошибкуОткрыв CSV в Excel (или код R ниже) и преобразовав ячейку из текста в данные, по какой-то странной причине она имеет только некоторые из прогнозируемых значений.Два дня назад эта выборка показала мне ошибку, и в данных выборки не было NA.Однако сегодня я не получаю ошибку с примерами данных.Может быть, я не знаю, как воссоздать проблему.Я запускаю R 3.4.4 в Windows 10.

Проверка проблемы в R после записи строки несколько раз ...

#read in file
my_save_file_df <- read.csv(file="Results/my_save_file.csv")
library(tidyverse)

#split the results
split_results <-my_save_file_df %>% 
  select(., year, observed, test_predicted) %>%
  mutate(observed = strsplit(as.character(observed), ";")) %>%
  mutate(test_predicted = strsplit(as.character(test_predicted), ";")) %>%
  unnest(.)

Это сообщение об ошибке появляется при возникновении проблемы

Error: All nested columns must have the same number of elements.
Call `rlang::last_error()` to see a backtrace

Существует ли ограничение на количество символов, с которым может работать paste0 ()?Не хватает памяти, есть ли у векторов или write.table () ограничение на количество свернутых элементов / символов в одной ячейке?

...