我是R的新手,并且在出现意外'}'错误时已经阅读了多个关于错误的论坛。然而,似乎大多数人倾向于忘记支架或混淆它们。我无法在这里看到我的代码有什么问题。
以下是代码:
typemean <- function(directory, type, id = 1:332) {
files_list <- list.files(directory,full.names=TRUE) ##creates a list of files
dat<-data.frame() ##creates an empty data frame
for (i in seq_along(id)) { ##loops through the files in id subset, rbingind them tgt
dat<-rbind(dat, read.csv(files_list[id[i]]))
}
mean(dat[,type],na.rm=TRUE) ##identifies the mean of the type while removing NAs
}
运行代码本身时,我得到了正确的答案。但是,将其保存为.R格式时,使用source()函数时会出错。
> save(typemean,file="typemean.R")
> source("typemean.R")
Error in source("typemean.R") : typemean.R:12:2: unexpected '}'
11: mean(dat[,type],na.rm=TRUE)##identifies the mean of the type while removing NAs
12: }
^
>
答案 0 :(得分:1)
save()
保存函数对象的R表示,而不是源代码。您希望使用load()
加载存储的对象,而不是source()
,如下所示:
# save the function to file
save(typemean,file="typemean.R")
# remove it from the current environment
rm(typemean)
# load the stored function from file
load("typemean.R")
# see that we have loaded the same function
typemean