如何通过将变量添加到固定值来创建对象?

时间:2016-07-01 15:21:37

标签: r dataframe

我正在尝试编写一个程序来打开大量文件并通过我调用的函数运行它们" sort"。我的每个文件名都以" sa1"开头,但之后字符因文件而异。我希望能够做到这一点:

 for(x in c("Put","Characters","which","Vary","by","File","here")){
     sa1+x <- read.csv("filepath/sa1+x",header= FALSE)
     sa1+x=sort(sa1+x)
     return(sa1+x)
}

在这种情况下,假设x为88.它将打开sa188文件,命名为dataframe sa188,然后通过函数sort运行它。我不认为写sa1 + x是将两个值绑定在一起的正确方法,但我不知道一种方法。

1 个答案:

答案 0 :(得分:0)

您需要使用列表来包含每个csv文件中的数据,并使用paste0循环遍历文件名。

file_suffixes <- c("put","characters","which","vary","by","file","here")
numfiles <- length(file_suffixes)

list_data <- list()
sorted_data <- list()
filename <- "filepath/sa1"

for (x in 1:numfiles) {
  list_data[[x]] <- read.csv(paste0(filename, file_suffixes[x]), header=FALSE)
  sorted_data[[x]] <- sort(list_data[[x]])
}

我不确定为什么在该循环中使用return。如果您正在编写函数,则应返回包含所有后期排序数据的sorted_data列表。

注意:您不应该调用函数sort,因为已经有一个名为sort的基本R函数。

附加说明:您可以使用dir()和正则表达式解析来查找以“sa1”开头并循环遍历所有文件的所有文件,从而使您无需指定file_suffixes