В конце скрипта я сохраняю много результатов в однострочном векторе и добавляю его в 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 () ограничение на количество свернутых элементов / символов в одной ячейке?