R 在自定义函数上使用循环时出错

R 在自定义函数上使用循环时出错,r,function,loops,R,Function,Loops,我在调试这个问题时遇到了一些问题。有人能告诉我哪里出了问题吗 我创建了这个简单的函数,它将用于多个数据帧以获得相同的信息 TransCleaning <- function(df){ x <- select(df, a, b, c, d, e, f, g) %>% filter(e != "$0.00") return(x) } 我得到以下错误。它与调用files2列表有关,因为 Transclean(files2[1]) 也不起作用,而 Transclean(df)

我在调试这个问题时遇到了一些问题。有人能告诉我哪里出了问题吗

我创建了这个简单的函数,它将用于多个数据帧以获得相同的信息

TransCleaning <- function(df){
  x <- select(df, a, b, c, d, e, f, g) %>% filter(e != "$0.00")
return(x)
}
我得到以下错误。它与调用files2列表有关,因为

Transclean(files2[1]) 
也不起作用,而

Transclean(df) 
很好

运行循环和transclean(文件2[1])时出现的错误如下:

Error in UseMethod("select_") : 
no applicable method for 'select_' applied to an object of class "character"

在函数中,data.frame字符串对象的值不会返回,因此我们可以使用
get
来执行此操作

for(i in 1:length(files2)){
   clean <- TransCleaning(get(files2[i]))
    assign(files2[i], clean)
}
for(i in 1:length(files2)){

clean在函数中,data.frame字符串对象的值不会返回,因此我们可以使用
get
来执行此操作

for(i in 1:length(files2)){
   clean <- TransCleaning(get(files2[i]))
    assign(files2[i], clean)
}
for(i in 1:length(files2)){

clean我认为在应用函数之前,您需要首先使用
read.csv/read.table
读取文件。如果它是data.frame的字符串名称,则使用
get
mget
获取数据集的值(以返回data.frames列表)读取CSV是我的第一步。它发生在调用函数之前。当函数运行时,所有数据帧都在全局环境中。正如我在上面所评论的,那么您的对象名称都是字符串,因此您需要
get
从中获取值。例如
transclean(get(files2[I]))
你完全正确!谢谢!我认为在应用函数之前,你需要先用
read.csv/read.table
读取文件。如果它是data.frame的字符串名,那么
使用
get
mget
获取数据集的值(返回data.frames列表)读取CSV是我的第一步。它发生在调用函数之前。当函数运行时,所有的数据帧都在全局环境中。正如我在上面所评论的,那么你的对象名都是字符串,所以你需要
get
来获取它的值。例如
transclean(get(files2[I])
你完全正确!谢谢!
for(i in 1:length(files2)){
   clean <- TransCleaning(get(files2[i]))
    assign(files2[i], clean)
}