【发布时间】:2017-11-13 11:28:06
【问题描述】:
我的代码如下,
`FARS = read.csv("C:\\Users\\rb138\\Desktop\\FARS.csv", header = T, sep = ",", na.strings=c(""," ","NA-code","NA"))
Preprocessing = process() {
FARS$X = NULL
library(caTools)
is.na(FARS) <- FARS == "NULL"
miss<-function(x)
{
return(sum(is.na(x)/length(x)*100))
}
apply(FARS,2,FUN = miss)
Mode <- function (x, na.rm) {
xtab <- table(x)
xmode <- names(which(xtab == max(xtab)))
if (length(xmode) > 1) xmode <- ">1 mode"
return(xmode)
}
for (var in 1:ncol(FARS)) {
if (class(FARS[,var])=="numeric") {
FARS[is.na(FARS[,var]),var] <- mean(FARS[,var], na.rm = TRUE)
} else if (class(FARS[,var]) %in% c("character", "factor")) {
FARS[is.na(FARS[,var]),var] <- Mode(FARS[,var], na.rm = TRUE)
}
}
set.seed(45)
split = sample.split(FARS$airbagDeploy, SplitRatio = 0.70)
Train1 = subset(FARS, split == TRUE)
Test1 = subset(FARS, split == FALSE)
}`
如果将它传递到对象之外,它不会引发任何错误。但是当我在函数中运行它时,它会抛出以下异常:
Error: unexpected '}' in " }"
当我尝试将对象保存在 RDS 文件中时,代码如下:
saveRDS(Preprocessing, file = "preprocessing_script.rds")
它抛出以下异常:
Error in saveRDS(Preprocessing, file = "preprocessing_script.rds") :
object 'Preprocessing' not found
用于此的数据集是来自 R 中的包“gamclass”的 FARS.csv。 如果有人需要数据集,请在您的 cmets 中使用。
提前谢谢你。
【问题讨论】:
-
你在这里尝试什么?
Preprocessing = process() {创建新功能?如果是这样,那么语法是错误的 -
我正在尝试将整个预处理脚本放在一个对象中。
-
谁没有它在一个单独的文件和
source()那个文件?同样在该文件中,您可以定义您的函数Preprocessing <- function( ){ your code }并稍后调用它。
标签: r function exception save coding-style