4

我有以下 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"),但我仍然在options()函数中寻找类似参数的东西,我可以只定义一次并让它工作到脚本结束(或直到我重新定义参数)。在 上找不到类似的东西?options

4

2 回答 2

12

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

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

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

> z
[1] No  Yes Yes Yes Yes No  Yes
Levels: No Yes
于 2013-09-05T18:02:34.967 回答
7

另一种方法:

c('No', 'Yes')[z + 1]
于 2013-09-05T18:16:41.863 回答