假设我有30个tsv文件的twitter数据,比如Google,Facebook和LlinkedIn等。我想对所有这些文件执行一系列操作,并且想知道我是否可以使用循环执行此操作。
具体来说,我知道我可以使用循环创建变量,例如
index = c("fb", "goog", "lkdn")
for (i in 1:length(index)){
file_name = paste(names[i], ".data", sep = "")
assign(file_name, read.delim(paste(index$report_id[i],
"-tweets.tsv", sep = ""), header = T,
stringsAsFactors = F))
}
但是如何在循环中对所有这些数据文件执行操作?例如,如果我想使用data[order(data[,4]), ]
订购数据文件,如何确保在循环的每次迭代中更改数据文件名?谢谢!
答案 0 :(得分:0)
构建一个函数,执行您需要执行的所有操作,然后创建一个调用该函数的循环。如果你坚持使用assign来创建大量的变量(这不是一个很好的实践),那么尝试类似的东西:
files <- dir("path/to/files", pattern = "*.tsv")
fileFunction <- function(x){
df <- read.delim(x, sep = "\t", header = T, stringsAsFactors = F)
df <- df[order(df[,4]),]
return(df)
}
for (a in files){
assign(a, fileFunction(a))
}