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