对所有数据执行操作
Perform action on all data
我有很多包含数据的 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)。我想对所有数据执行此操作。
我发现最简单的方法是使用 data.table
包中的一些实用函数:fread
(更快的文件 reader)和 rbindlist
(将列表合并为单个数据 table 或数据框)。
沿着这些路线的东西应该做你想要的:
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.names
或 fill
。
我有很多包含数据的 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)。我想对所有数据执行此操作。
我发现最简单的方法是使用 data.table
包中的一些实用函数:fread
(更快的文件 reader)和 rbindlist
(将列表合并为单个数据 table 或数据框)。
沿着这些路线的东西应该做你想要的:
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.names
或 fill
。