【发布时间】:2016-02-24 09:15:34
【问题描述】:
使用this script,我为每个 csv 文件创建了一个特定文件夹,然后将所有进一步的分析结果保存在该文件夹中。文件夹的名称和 csv 文件的名称相同。 csv 文件存储在 main/master 目录中。 现在,我在每个文件夹中创建了一个 csv 文件,其中包含所有拟合值的列表。
我现在想做以下事情:
- 将工作目录设置为特定的文件名
- 读取拟合值文件
- 添加行/列说明站点名称/唯一 ID
- 将其添加到主目录中存储的主文件中,并带有指定站点名称/文件名的标题。它可以按行或按列堆叠,这并不重要。
- 来到主目录选择下一个文件
- 重复循环
使用merge()、rbind()、cbind() 将所有数据组合在一个列名下。我想将所有网站分开,以便稍后进行比较。
这是我目前正在使用的,我不知道如何进一步进行。
setwd( "path") # main directory
path <-"path" # need this for convenience while switching back to main directory
# import all files and create a character type array
files <- list.files(path=path, pattern="*.csv")
for(i in seq(1, length(files), by = 1)){
fileName <- read.csv(files[i]) # repeat to set the required working directory
base <- strsplit(files[i], ".csv")[[1]] # getting the filename
setwd(file.path(path, base)) # setting the working directory to the same filename
master <- read.csv(paste(base,"_fiited_values curve.csv"))
# read the fitted value csv file for the site and store it in a list
}
我想构建一个 for 循环来制作一个包含不同目录中的文件的主文件。我不想将所有内容合并到一个列名下。
例如,如果我有 50 个类似的 csv 文件,每个文件有两列数据,我希望有一个 csv 文件来容纳所有这些;但以其原始格式而不是附加到现有的行/列。那么我将有 100 列数据。
请告诉我我可以提供哪些进一步的信息?
【问题讨论】:
-
你的问题是什么
标签: r csv for-loop merge data.table