提问人:Abdullah Al Mahmud 提问时间:11/13/2023 最后编辑:neilfwsAbdullah Al Mahmud 更新时间:11/13/2023 访问量:51
ifelse 在不同的函数中给出不同的输出
ifelse gives different output in different function
问:
我想做什么:
长度大于 1 的向量将转换为 (0,1) 范围。
但我只得到第一个值。
这里的答案讨论了这个问题,但我找不到解决我的方法。
使用以下代码。
x <- 1:10
x
range01 <- function(x) { (x - min(x)) / (max(x) - min(x)) }
range01(x)
ifelse(length(x) > 1, range01(x), x)
[1] 0
我只得到第一个值。
但是,以下ifelse给出了一个向量,我将其用作测试。
ifelse(x >= 0, sqrt(x), NA)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751
2.828427 3.000000 3.162278
答:
1赞
Abdullah Al Mahmud
11/13/2023
#1
使用@Seth提供的信息,我现在有一个解决方案。我从条件创建了一个矢量化输出length(x)>1
ifelse(rep(length(x)>1, length(x)), range01(x), x)
评论
if(length(x)>1) range01(x) else x
ifelse
length(x)>1
x >= 0
x