mapply 没有相同的 return 数据类型

mapply not having same return datatype

它return一次是字符串,其他一次是整数

f <- function(a){
  if (a > 10) 
    return("any string")
  else
    return(a)
}

mapply(f,c(1,20,10))
[1] "1" "any string" "any string"

但我想要原始形式的函数的 return 值,因为第一个是整数

[1] 1 "any string" "any string"

为什么您的示例不起作用? vector 在 R 中只能包含一种数据类型。当提供了一些类型时,自动转换总是应用于较低级别的表示 - 这里是一个字符。必须使用 list 来获取不同的数据类型。 地图解决方案

f <- function(a){
if(a>10)
return('any string')
else{
return(a)
}
}

Map(f, c(1,20,10))