【发布时间】:2018-03-18 12:40:21
【问题描述】:
我正在尝试遍历多个 CSV 文件并为每个文件完成相同的任务以节省自己的时间。首先,我运行“list.files”列出文件夹中的所有文件(例如 GPS_Collar33800_13.csv、GPS_Collar33801_13.CSV 等)。然后我开发了一个循环,但我正在努力研究如何构建代码的其他部分来处理每个单独的文件。我的最终目标是拥有 24 个在结构上看起来都相同的文件,然后我需要将它们全部合并到一个主文件中。另一个问题是我需要为每个文件列出一个唯一 ID(为衣领 ID 添加列,例如 33800、33801、33802 等),但我不知道如何在不手动添加新唯一的情况下轻松做到这一点手动 ID(如果我知道它首先引入了文件 GPS_Collar33800_13.csv,那么我可以使 AnimalID 列 value=33800 并对 GPS_Collar33801_13.csv 执行相同的操作并添加 AnimalID 列 value=33801)。唯一 ID 基于文件名。我们欢迎所有的建议!
## List CSV files in folder
`files<-list.files()`
## Run a for loop to complete the same tasks for each
for (i in 1:length(files)){
## Read table
tmp<-read.table(files[i],header=FALSE,sep=" ")
## Keep certain columns
tmp1 <- tmp[c(2:5,9,10,12,13)]
#Name the remaining columns
names(tmp1) <-
c("GMT_Date","GMT_Time","LMT_Date","LMT_Time","Latitude","Longitude","PDOP","2D_3D")
#Add column for collar ID
tmp1$AnimalID<-33800
#Cleanup dataframe by removing records with NAs
tmp1[tmp1 == "N/A"] <- NA
tmp2<-na.omit(tmp1)
【问题讨论】: