【发布时间】:2016-09-07 19:31:05
【问题描述】:
write 和 read.csv 的一个奇怪问题。我有办法解决这个问题,但如果有人能确定发生了什么,那就太好了。
我有来自其他人的代码,它通过附加新行来动态创建一系列 CSV。问题是 read.csv 似乎不一致地读取新创建的 csv。
虚拟代码示例:
datfile <- "E:/temp.csv"
write(paste("Name","tempname",sep=","),datfile,1)
write(paste("VShort",50,sep=","),datfile,1,append=T)
write(paste("Short1",1,1,sep=","),datfile,1,append=T)
write(paste("Short2",0,2,sep=","),datfile,1,append=T)
write(paste("Short3",0,2,sep=","),datfile,1,append=T)
write(paste("Long",0,0.3,0.6,1,sep=","),datfile,1,append=T)
write(paste("Short4",2,0,sep=","),datfile,1,append=T)
read.csv(datfile,header=F,colClasses="character")
7 行数据写入 CSV,但read.csv 读取 8 行(Long 分为两行)。八行三列读入。
通过在 Excel 中打开 temp.csv 并保存来解决问题。然后read.csv 适当地读入这 7 行。
该问题似乎仅在某些条件下存在。比如去掉Short 3就没有问题了:
datfile2 <- "E:/temp2.csv"
write(paste("Name","tempname",sep=","),datfile2,1)
write(paste("VShort",50,sep=","),datfile2,1,append=T)
write(paste("Short1",1,1,sep=","),datfile2,1,append=T)
write(paste("Short2",0,2,sep=","),datfile2,1,append=T)
write(paste("Long",0,0.3,0.6,1,sep=","),datfile2,1,append=T)
write(paste("Short4",2,0,sep=","),datfile2,1,append=T)
read.csv(datfile2,header=F,colClasses="character")
读入六行五列。
有什么想法吗?
R 版本 3.2.4 修订
Windows 10
【问题讨论】:
标签: r