我正在尝试使用read.csv()命令,但是我不理解colClasses部件来运行编码。谁能解释一下它是什么,并给我一个简单的read.csv()代码示例
此外,如果我为read.csv()运行代码,我会得到一个错误
> object of type 'closure' is not subsettable这是什么类型的错误?上一次我运行我的代码,它工作了,但现在我得到了这个。我不确定我应该在这里做什么改变。这是我的代码:
Precipfiles[1:24] <- list.files(pattern=".csv")
> DF <- NULL
> for (f in Precipfiles[1:24]) {
data[1:24]<-read.csv(f,header=T,sep="\t",na.string="",colClasses="character")
DF[1:24]<-rbind(DF,data[1:24])
}基本上,我加载所有数据并将它们放在一起,但我无法使用merge()命令,因为我遇到了上面列出的问题。
我认为我不应该使用colClasses="character",因为我使用的数据都是200x200矩阵中的数字。有24个数据文件,我必须把它们放在一起。
如果您有任何建议和建议,以改善此编码,请让我知道。谢谢你的帮助。
发布于 2013-02-25 06:14:01
你真的不需要在每个任务中都使用[1:24],这就是你的问题所在。您被分配到某个描述的索引向量的子集。
在没有预先分配data的情况下(在您之前的用法中,data可能是您创建的list或data.frame ),错误消息会显示。因此,data是一个函数(用于加载与包相关的数据,请参阅?data),您看到的错误说明(函数包含闭包)
我建议这样做:
Precipfiles <- list.files(pattern=".csv")
DFlist <- lapply(Precipfiles, read.table, sep = '\t',
na.string = '', header = TRUE)
bigDF <- do.call(rbind, DFlist)
# or, much faster using data.table
library(data.table)
bigDF <- rbindlist(DFlist)https://stackoverflow.com/questions/15057202
复制相似问题