Loops 在R中加载、编辑和写入多个数据集
我对R比较陌生,但到目前为止,我通过有效的谷歌搜索进行了管理。不幸的是,我很难用谷歌解决我目前的问题 我有大量的文件,我想编辑,并保存为不同的格式。这些表格包含约80000行的纬度、经度和平均温度数据。我需要做的是只选择与我的研究密切相关的地区和月份。虽然我可以很容易地对单个文件执行此操作,但我似乎无法自动处理我拥有的111个文件(我希望将它们分开,因为这样对下游GIS应用程序更容易) 对于单个文件,这是一个适合我的过程:Loops 在R中加载、编辑和写入多个数据集,loops,Loops,我对R比较陌生,但到目前为止,我通过有效的谷歌搜索进行了管理。不幸的是,我很难用谷歌解决我目前的问题 我有大量的文件,我想编辑,并保存为不同的格式。这些表格包含约80000行的纬度、经度和平均温度数据。我需要做的是只选择与我的研究密切相关的地区和月份。虽然我可以很容易地对单个文件执行此操作,但我似乎无法自动处理我拥有的111个文件(我希望将它们分开,因为这样对下游GIS应用程序更容易) 对于单个文件,这是一个适合我的过程: test<-read.fwf("air_temp.1900", w
test<-read.fwf("air_temp.1900", widths = c(8,8,8,8,8,8,8,8,8,8,8,8,8,8), header=F)
test1<-subset(test, V1 > -135 & V1< -55 & V2 < 80 & V2 > 55,
select=c("V1","V2","V8","V9","V10"))
write.csv(test1.csv,file="test1",row.names=F)
以下是我试图实现流程自动化的尝试,尽管它显然存在缺陷:
names<-list.files(pattern='air_temp.*')
names1<-substr(names,1,13)
for(i in names2){
filepath <- file.path("...Climate.geo.udel.edu/",paste(i))
assign(i, read.fwf(filepath, widths = c(8,8,8,8,8,8,8,8,8,8,8,8,8,8), header=F))
#up to here works fine, I can automate the loading of these files into R
#but editing and exporting them doesn't seem to work
subset(i, V1 > -135 & V1 < -55 & V2 < 80 & V2 > 55, select=c(V1,V2,V8,V9,V10))
}
names您的错误是没有名为V1
的变量。这是真的read.fwf
返回一个data.frame
V1
是data.frame
中的一列,由i
或test
保存
要使用data.frame
的列,您可以使用with
功能或使用$
语法访问data.frame
中的列
在您的情况下,with
语法可能更简单:
subset(i, with(i, V1 > -135 & V1 < -55 & V2 < 80 & V2 > 55, select=c(V1,V2,V8,V9,V10)))
谢谢你的回复。不幸的是,“with”函数返回了此错误:eval中的错误(replacement(expr),data,enclose=parent.frame()):无效的“character”类型的“envir”参数,并使用$返回了此错误:i$V1中的错误:$运算符对于使用temp的原子向量无效
subset(i, with(i, V1 > -135 & V1 < -55 & V2 < 80 & V2 > 55, select=c(V1,V2,V8,V9,V10)))
i$V1