对所有数据执行操作

时间:2015-03-10 21:32:57

标签: r fft

我有很多带数据的csv文件。我想对我的所有文件执行相同的操作,但我不知道如何在不对所有文件单独执行的情况下执行此操作。

我读入了所有csv文件,并使用以下命令将数据保存在我的环境中:

files <- list.files(path=path, pattern="*.csv") 
for(file in files) {  
    perpos <- which(strsplit(file, "")[[1]]==".")   
    assign(gsub(" ","",substr(file, 1, perpos-1)), 
           read.csv(paste(path,file,sep="")))
}

我试图执行的动作是向量上的fft(x)(快速傅里叶变换)。例如,如果文件名是data1,我想做fft(data1 $ vector)。我想为所有数据执行此操作。

1 个答案:

答案 0 :(得分:1)

我发现这样做的最简单方法是使用data.table包中的一些实用程序函数:fread(更快的文件阅读器)和rbindlist(合并一个列入单个数据表或数据框)。

这些方面应该做你想做的事情:

files <- list.files(path = path, pattern = "*.csv")

# Read your files into a list of data tables 
# (if you want data frames, set data.table = FALSE)
data <- lapply(files, fread)

data <- rbindlist(data, use.names = TRUE, fill = TRUE)

根据文件的具体情况,您可能需要fread的其他参数。您可能不需要指定use.namesfill