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))
它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))