无法读取csv文件

时间:2015-11-01 02:01:20

标签: r csv

我是R的新手,我有这个问题:我有一组csv文件,每个文件都有3个带有数值的列。我正在设法运行一组指令来创建允许我对齐每个文件的图表的类别。到目前为止,这是我的命令集:

myFiles<-dir("C:\\Data\\")
myDeadVols<-as.matrix(read.csv("C:\\Data\\Dead Volumes.csv", header=T, sep="|", row.names=1))

myDeadVolsVec <- as.numeric(myDeadVols[,"t2_min"])*60 + as.numeric(myDeadVols[,"t2_s"])

names(myDeadVolsVec) <- myDeadVols[,"fileName"]

sampAnot <- names(myDeadVolsVec)

names(sampAnot) <- sampAnot

polyRead <- function(fileNames=NULL, mySep="|"){

dataList <- list()

for(tmpName in fileNames){dataList[[tmpName]] <-as.matrix(read.table(tmpName, header=TRUE, sep=mySep))}
return(dataList)}

polyReadMaritza <- function(fileNames=NULL, mySep="|", file2void=NA, fracTime=35, dataPerFrac=173){

dataList <- list()
for(tmpName in fileNames){
tmpMat<-as.matrix(read.table(tmpName, header=FALSE, sep=mySep))
tmpVoidTime<-file2void[tmpName]
tmpVoidPoints<-tmpVoidTime/fracTime*dataPerFrac
tmpAdder<-matrix(ncol=3, nrow=as.integer(tmpVoidPoints), data=0)
tmpMat<-rbind(tmpAdder, tmpMat)
tmpEvent<-rep(0, dim(tmpMat)[1])
fractMoves<-c(1:length(tmpEvent))[which(c(1:length(tmpEvent))%%dataPerFrac==0)]
tmpEvent[fractMoves]<-1
tmpMat[,3]<-tmpEvent
dataList[[tmpName]] <- tmpMat
colnames(dataList[[tmpName]])<-c("Distance.mm.", "Absorbance", "Event")}
return(dataList)}

到目前为止,一切似乎都没问题,但是当我尝试输入fllowin命令时:

myDataList <- polyReadMaritza(myFiles, mySep="\t", file2void=myDeadVolsVec)

我有这个错误:

  

文件错误(文件,“rt”):无法打开连接。此外:   警告消息:在文件(文件,“rt”)中:无法打开文件'Beads.csv':否   这样的文件或目录

现在,'Beads.csv'的路径是C:\ Data \ Beads.csv,所以我认为这是因为它没有读取'Beads.csv'的complet路径(这是第一个文件) )但我认为“myFiles&lt; -dir(”C:\ Data \“)”我已经指定了路径。欢迎任何帮助

2 个答案:

答案 0 :(得分:1)

您实际上已获取所需目录中的文件列表。

fileDir = 'C:/Data'
myFiles = list.files(path=fileDir, pattern='*.csv')

然后当你致电read.csv时,你必须给R一个完整的文件路径......

for(file in myFiles){
    read.csv(file.path(fileDir,file))
}

答案 1 :(得分:0)

dir返回的值不包含路径。 dir中“full.names”的默认值为FALSE,因此除非您的工作目录为“c:// Data //”,否则read.csv调用将无法查找正确的位置。尝试:

myFiles <- dir("C:\\Data\\", pattern= "[.]csv", full.names-TRUE)