zerone <- function(a) { if (a>0) {
a<-1
print(a) } else if (a==0) { print(0) }else {FALSE} }
嗨,使用上面的函数我可以将任何0和正数转为1和0,但我不能将向量转换为1和0向量。例如c(3,8,10,0)至c(1,1,1,0)。我该如何修改我的功能。谢谢
答案 0 :(得分:4)
逻辑索引(v1 > 0
)可以通过包裹+
强制转换为二进制。 TRUE
元素更改为1,FALSE
更改为0。
+(v1 > 0)
#[1] 1 1 1 0
其他强制方式包括
(v1 > 0) + 0L
或者
(v1 > 0) * 1
如果我们需要一个功能
zerone <- function(a) {
+(a > 0)
}
zerone(v1)
#[1] 1 1 1 0
v1 <- c(3, 8, 10, 0)