我在与R合作方面相当新,但试图完成这项工作 . 我有几十个ENVI光谱数据集存储在一个目录中 . 每个数据集分成两个文件 . 它们都具有相同的名称约定,即:
ID_YYYYMMDD_350-200nm.asr
ID_YYYYMMDD_350-200nm.hdr
任务是读取数据集,添加两列(文件名中的ID和日期),并将结果存储在* .csv文件中 . 我让这个工作为一个文件(硬编码) .
library(caTools)
setwd("D:/some/path/software_scripts")
### filename without extension
name
### split filename in area-id and date
flaeche
date
### get values from ENVI-file in a matrix
spectrum
### add columns
spectrum
### CSV-Dataset with all values
write.csv(spectrum, file = name,".csv", sep=",")
我想将所有可用文件合并到一个* .csv文件中 . 我知道我要使用list.files但不知道如何实现read.ENVI函数并将生成的矩阵添加到CSV .
Update:
library(caTools)
setwd("D:/some/path/mean")
files
all_names
name
# wrap your existing code in a function
mungeENVI
# split filename in area-id and date
flaeche
date
# get values from ENVI-file in a matrix
spectrum
# add columns
spectrum
return(spectrum)
}
# use lapply to 'loop' over each name
list_of_ENVIs
# use do.call(rbind, x) to turn it into a big data.frame
final_df
# now write output
write.csv(final_df, "all_results.csv")
你可以在这里找到一个样本数据集:Sample dataset