所以我正在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"
控制台是否可以打印出长度和“是”或“否”两者?
答案 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"