用 R 向量化我的函数不起作用
Vectorize my function with R is not working
我有这个功能:
fx <- function (x) {
if (x <= 0) {
return(-1 * (x**3))
}
else if (0 < x && x <= 1) {
return(x**2)
}
else if (x > 1) {
return(sqrt(x))
}
}
我将矢量化函数转换为:
fVectorize <- function(x) {
result <- ifelse(x <= 0, -1 * (x**3), ifelse(0 < x && x <= 1, x**2, sqrt(x)))
result
}
我尝试了以下值但不起作用:
fVectorize(c(-2, -4, -5))
fVectorize(c(0.5, 0.3, 0.7))
fVectorize(c(3, -4, 0.7))
好像只取了第一个条件。
有什么想法吗?
将 &&
更改为 &
fVectorize <- function(x) {
result <- ifelse(x <= 0, -1 * (x**3), ifelse(0 < x & x <= 1, x**2, sqrt(x)))
result
}
fVectorize(c(-2, -4, -5))
#[1] 8 64 125
fVectorize(c(0.5, 0.3, 0.7))
#[1] 0.25 0.09 0.49
fVectorize(c(3, -4, 0.7))
# [1] 1.732051 64.000000 0.490000
&
执行元素明智的操作,其中 &&
将第一个元素查找为 return 一个值。
我有这个功能:
fx <- function (x) {
if (x <= 0) {
return(-1 * (x**3))
}
else if (0 < x && x <= 1) {
return(x**2)
}
else if (x > 1) {
return(sqrt(x))
}
}
我将矢量化函数转换为:
fVectorize <- function(x) {
result <- ifelse(x <= 0, -1 * (x**3), ifelse(0 < x && x <= 1, x**2, sqrt(x)))
result
}
我尝试了以下值但不起作用:
fVectorize(c(-2, -4, -5))
fVectorize(c(0.5, 0.3, 0.7))
fVectorize(c(3, -4, 0.7))
好像只取了第一个条件。
有什么想法吗?
将 &&
更改为 &
fVectorize <- function(x) {
result <- ifelse(x <= 0, -1 * (x**3), ifelse(0 < x & x <= 1, x**2, sqrt(x)))
result
}
fVectorize(c(-2, -4, -5))
#[1] 8 64 125
fVectorize(c(0.5, 0.3, 0.7))
#[1] 0.25 0.09 0.49
fVectorize(c(3, -4, 0.7))
# [1] 1.732051 64.000000 0.490000
&
执行元素明智的操作,其中 &&
将第一个元素查找为 return 一个值。