控制台是否可以在调用函数时

时间:2019-02-17 17:35:44

标签: r

所以我正在R中构建一个程序,该程序定义一个函数,该函数需要一个向量来计算其长度,并打印长度,如果大于10,则键入“ YES”,否则键入“ NO”

index<-function(x){
n<-length(x)
n
if(n>10){
"YES"
}
else{
"NO"
}
}

但是,当我定义一个向量并调用该函数时,它仅显示“ YES”或“ NO”,而不显示长度。

> x<-c(2,5,2,6,8,2,12)
> index(x)
[1] "NO"
> x<-c(2,5,2,6,8,2,12, 5,2,4,6,3,8)
> index(x)
[1] "YES"

控制台是否可以打印出长度和“是”或“否”两者?

2 个答案:

答案 0 :(得分:2)

如果您想要一个将n和yes / no组合在一起的函数,则可以执行以下操作:

index<-function(x){
  n<-length(x)
  if(n>10){
    paste(n,"YES")
  }
  else{
    paste(n,"NO")
  }
}  

例如,

> x<-c(2,5,2,6,8,2,12)
> index(x)
[1] "7 NO"
> x<-c(2,5,2,6,8,2,12, 5,2,4,6,3,8)
> index(x)
[1] "13 YES"

答案 1 :(得分:2)

当您要返回两种不同的对象类型时,我认为使用列表是合适的。

index <- function(x) {
    n <- length(x)
    list(length = n, n10 = if(n > 10) "YES" else "NO")
}

index(1:8)
# $length
# [1] 8
#
# $n10
# [1] "NO"

index(1:23)
# $length
# [1] 23
#
# $n10
# [1] "YES"