R:检查变量类型
我对R很陌生,目前我正在尝试编写一个带有一些防傻瓜功能的代码 例如,我有一个函数,假设它需要(n,c,l) 其中变量应为数字、字符和逻辑类型 有没有办法让我检查一下这些东西? 例如,我尝试了R:检查变量类型,r,R,我对R很陌生,目前我正在尝试编写一个带有一些防傻瓜功能的代码 例如,我有一个函数,假设它需要(n,c,l) 其中变量应为数字、字符和逻辑类型 有没有办法让我检查一下这些东西? 例如,我尝试了is.integer(3)。。。这返回FALSE 理想情况下,我要寻找的是,例如,假设abc()是一个函数,它将测试l==T或l==F(检查是否输入了正确的逻辑)。 然后:abc(T)给出真,abc(2)给出假 还有一种方法可以检查n是否是一个特定的整数吗?我的意思是我可以检查(n%%1==0),但是有专门的
is.integer(3)
。。。这返回FALSE
理想情况下,我要寻找的是,例如,假设abc()是一个函数,它将测试l==T或l==F(检查是否输入了正确的逻辑)。
然后:abc(T)给出真,abc(2)给出假
还有一种方法可以检查n是否是一个特定的整数吗?我的意思是我可以检查(n%%1==0),但是有专门的函数吗
请提前感谢您提出了一个非常基本的问题。如评论中所述,您可以使用
is.numeric(3)#check whether numeric
is.integer(3L)#check whether integer
is.logical(TRUE)#Check whether logical
is.logical(2)#will return false
is.character("abc")#check whether character
is.character(4)#will return false
类似地,您可以在R中检查其他数据类型。希望这能有所帮助。比较
is.integer(3)
和is.integer(3L)
。3不是整数,是双精度。在R中,3L是3的整数表示形式。您可以使用is.numeric()
,因为整数和double都返回TRUE,因为它们都是数字。@RichardScriven和Pascal谢谢,我需要研究一下这些差异。谢谢您对“double”的介绍,它隐藏在我的记忆中,从我学习C.is.logical时就开始了,is.character也一样。我将使用我的模数技巧进行十进制检查。如果我们是学究,不要使用t
,使用TRUE
。@最近的邮件不是学究。这是一个经常被遗忘的要点。@KumarManglam感谢你的回答,unf幸运的是,我在其他书库中的声誉没有延续下来,所以我暂时无法对任何人的答案进行投票。