【问题标题】:Error: unexpected '}' in "}"错误:“}”中出现意外的“}”
【发布时间】: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 &lt;- function( ){ your code } 并稍后调用它。

标签: r function exception save coding-style


【解决方案1】:

尝试使用单独的函数像这样修改您的代码:

FARS = read.csv("C:\\Users\\rb138\\Desktop\\FARS.csv", header = T, sep = ",", na.strings=c(""," ","NA-code","NA"))


Preprocessing = function(FARS) {

  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)

  }

Preprocessing(FARS)

让我知道它是否有效!

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 2011-07-15
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多