R中开关函数的奇异行为
我有一个奇怪的问题,R中的开关函数 代码非常简单,但我不理解其行为 示例:好的R中开关函数的奇异行为,r,R,我有一个奇怪的问题,R中的开关函数 代码非常简单,但我不理解其行为 示例:好的 a=1 switch(a, "1" = print("one"), "2" = print("two"), print("?") ) 正确的 a=1>>[1]“一个” 正确的 a=2>>[1]
a=1
switch(a,
"1" = print("one"),
"2" = print("two"),
print("?")
)
[1]“一个”
[1]“两个”
[1]“?”
a=-1
switch(a,
"1" = print("one"),
"-1" = print("minus"),
print("?")
)
没有印刷
为什么负值的大小写会导致意外行为?在比较字符之前,应该强制将a的值与字符进行比较。它似乎不像预期的那样处理负整数。但是使用
as.character()
它工作得很好
a=-1
switch(as.character(a),
"1" = print("one"),
"-1" = print("minus"),
print("?")
)
switch(如字符(a),…)
阅读函数switch()
的文档!谢谢你友好的回答。这对我来说很清楚。