R中的ifelse'意外符号'错误

时间:2013-01-31 18:50:00

标签: r

它只是一个基本的ifelse,但它返回错误:“意外符号”并指向最后一行的第一个字符。 有任何想法吗?

input1<-readline("using C:/Users/HouseGroup/Desktop/betterformat.csv as the target csv file.
  Is this correct?  Y/N" )
ifelse (input1=="Y",
theData <- read.csv("C:/Users/HouseGroup/Desktop/betterformat.csv"),
rightDir<- readline("please input the proper file path") 
theData<-  read.csv(rightDir))

1 个答案:

答案 0 :(得分:3)

您应该使用R中的标准ifelse结构,由R language definition定义。

  

当if语句不在块中时,else(如果存在)必须   与statement2的结尾出现在同一行。否则新的   statement2末尾的行完成if并产生a   语法完整的语句,被评估。简单的解决方案   是使用包裹在大括号中的复合语句,将else放在上面   与结束括号相同的行标记语句的结尾

if (input1=="Y") {
  theData <- read.csv("C:/Users/HouseGroup/Desktop/betterformat.csv")
} else {
  rightDir <- readline("please input the proper file path") 
  theData <- read.csv(rightDir)
}

命令ifelse采用向量并返回向量。有关示例,请参阅?ifelse

x <- c(6:-4)
sqrt(x)  #- gives warning
sqrt(ifelse(x >= 0, x, NA))  # no warning