【发布时间】:2013-09-09 16:12:47
【问题描述】:
我有以下 R 脚本:
x <- c('PE', 'MG', 'SP', 'GO', 'ES', 'PB', 'DF')
y <- c('PB', 'MG', 'SP', 'GO', 'ES', 'SE', 'DF')
z <- x == y
这样
> z
[1] FALSE TRUE TRUE TRUE TRUE FALSE TRUE
但是,我希望 z(以及脚本后面的其他逻辑变量)改为显示“是”和“否”,所以我进行了重新编码:
z <- ifelse(z == TRUE, "Yes", "No")
有什么方法可以跳过这个额外的步骤,即定义z 显示“是”而不是“真”和“否”而不是“假”。
当然,我也可以使用 z <- ifelse(x == y, "Yes", "No"),但我仍在寻找类似 @987654328@ 函数中的参数之类的东西,我可以只定义一次并让它工作到脚本结束(或直到我重新定义参数)。在?options 上找不到类似的内容。
【问题讨论】:
-
这不能解决您的问题,但您不需要
==,因为变量已经是logical类型。你可以简单地做z = ifelse(z, 'Yes', 'No') -
我继续说你的问题的答案是
ifelse(FALSE, 'Yes', 'No') -
@SeñorO,感谢您的输入,我忘记了诀窍。节省一些代码字节总是好的。
-
一个非常相似的问题是answer here
-
我只是在说我不认为你可以做你想做的事。用它输出的内容替换我的代码(即“否”)
标签: r boolean logical-operators