Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将TRUE和FALSE更改为Yes和No_R_Boolean_Logical Operators - Fatal编程技术网

将TRUE和FALSE更改为Yes和No

将TRUE和FALSE更改为Yes和No,r,boolean,logical-operators,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和其他逻辑变量在脚本的后面显示Yes和No,所以我重新编码: z <- ifelse(z == TRUE, "Yes", "No") 有没有办法跳过这个额外的步骤,即定义z show Yes代替TRUE,No代替FALS

我有以下R脚本:

x <- c('PE', 'MG', 'SP', 'GO', 'ES', 'PB', 'DF')
y <- c('PB', 'MG', 'SP', 'GO', 'ES', 'SE', 'DF')
z <- x == y
但是,我想让z和其他逻辑变量在脚本的后面显示Yes和No,所以我重新编码:

z <- ifelse(z == TRUE, "Yes", "No")
有没有办法跳过这个额外的步骤,即定义z show Yes代替TRUE,No代替FALSE


当然,我也可以做z,据我所知,没有办法覆盖R为逻辑对象打印TRUE和FALSE这一事实,我个人认为这很好

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

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

> z
[1] No  Yes Yes Yes Yes No  Yes
Levels: No Yes
另一种方法:

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

这并不能解决您的问题,但您不需要==因为变量已经是逻辑类型。你可以简单地做z=ifelsez,'Yes','No'我继续说,你的问题的答案是ifelseFALSE,'Yes','No'@SeñorO,谢谢你的输入,我已经忘记了这个技巧。节省一些代码字节总是很好的。一个非常类似的问题是,我只是尖刻地说,我认为你不能做你想做的事情。将我的代码替换为它的输出ie NoI猜想默认的TRUE/FALSE有助于快速理解每个对象所属的类,但是当我需要以表格的形式呈现数据时,它看起来很奇怪,特别是因为我的报告不是用英语写的。那么,像您这样在本地进行更改似乎比试图在全球范围内更改输出要好得多。我认为这背后的一个主要原因是逻辑类型用于子集等:x[z]适用于逻辑类型,但不适用于因子。@wleoncio是否在运行R时将语言环境设置为您的语言?如果你所担心的只是语言,为什么你用英语是/否而不是Bəli/Xeyr或其他什么?@CarlWitthoft,我用英语运行R,因为否则我会遇到十进制分隔符的问题。尽管在巴西我们使用逗号,但我使用的数据集几乎总是使用句号加号,只要有可能,我就喜欢使用他们的母语。在我的实际问题中,我使用Sim/Não而不是Yes/No,我只是想让这个问题更具普遍性;
c('No', 'Yes')[z + 1]