如何在R中循环遍历许多变量并对它们执行操作?

时间:2016-04-19 14:55:27

标签: r

假设我有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]), ]订购数据文件,如何确保在循环的每次迭代中更改数据文件名?谢谢!

1 个答案:

答案 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))
}