r - 在 df 中读取并附加来自 paste(x, collapse=";") 的项目后丢失数据
问题描述
在脚本结束时,我将许多结果保存到单行向量中,并将其附加到 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)
}
更新:使用我的真实数据集,我可以通过在 Excel(或下面的 R 代码)中打开 csv 来检查错误,并将单元格从文本转换为数据,原因很奇怪,它只有一些预测值。两天前,此示例数据向我抛出了错误,并且示例数据中没有 NA。但是今天我没有收到示例数据的错误。也许我不知道如何重现问题。我在 Windows 10 上运行 R 3.4.4。
多次写行后检查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() 是否对单个单元格中折叠的项目/字符有限制?
解决方案
推荐阅读
- javascript - 如何在 React 中观察窗口大小调整停止时
- javascript - 使用 scrollTop 在 JQuery 中清除和设置间隔
- aws-cli - 使用aws cli如何增加和减少使用自动伸缩组的实例数量
- java - Jersey1.0 到 Jersey 2.0 迁移产生 UniformInterfaceException
- node.js - 已解决:强大在本地主机之外不起作用
- reactjs - React 应用程序未加载总是显示等待本地主机
- javascript - React-Redux 错误:未处理的拒绝(TypeError):无法读取未定义的属性“statusText”
- reactjs - React 部署:构建脚本无法识别 package.json 文件的“主页”属性
- reactjs - 动态添加手风琴 onClick ReactJS Material UI
- json - 将 TD Ameritrade 的 JSON API 输出转换为 Pandas 数据帧