是否有向量化机制将不同形状的矢量返回到R的ApplicationUser
函数中的测试对象?
The function is designed to return objects of the same shape as the test object:
ifelse(test, yes, no)
但即使我们偷偷摸摸并尝试分配对象以便输入单个长度的名称,结果也是一样的:
> ifelse(TRUE, c(1, 3), 7)
[1] 1
笨重的控制结构起作用:
> x <- c(1,3)
> ifelse(TRUE, x, 7)
[1] 1
但有没有一种矢量化方法来实现这个目标?
[编辑:这是向this one询问输入矩阵的另一个问题,而这是在询问输入向量,即使答案结果相似。] < / p>
答案 0 :(得分:1)
1)如果通常在这种情况下只使用普通if
:
out <- if (TRUE) c(1, 3) else 7
out
## [1] 1 3
2)替换要考虑的另一个构造是:
replace(c(1, 3), !TRUE, 7)
## [1] 1 3
3)ifelse / list 如果您真的想使用ifelse
,这可行:
ifelse(TRUE, list(c(1, 3)), list(7))[[1]]
## [1] 1 3