将TRUE和FALSE更改为是和否

时间:2013-09-05 17:53:32

标签: r boolean logical-operators

我有以下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显示“是”而不是“TRUE”和“No”而不是“FALSE”。

当然,我也可以做z <- ifelse(x == y, "Yes", "No"),但我仍然在options()函数中查找类似于我只能定义一次的参数,并让它工作到脚本结束(或直到我重新定义参数)。在?options上找不到类似的内容。

2 个答案:

答案 0 :(得分:9)

据我所知,没有办法覆盖R为逻辑对象打印TRUEFALSE的事实(我个人觉得这很好)。

您正在寻找的最接近的解决方案可能是因素转换:

z <- factor(x==y, labels=c("No", "Yes"))

> z
[1] No  Yes Yes Yes Yes No  Yes
Levels: No Yes

答案 1 :(得分:7)

另一种方法:

c('No', 'Yes')[z + 1]