c语言错误中numeric,R语言中的logical(0)和numeric(0)以及赋值问题

本文探讨了R语言中logical(0)和numeric(0)与NULL的区别,强调它们在逻辑判断中的不同表现。逻辑长度为0的值并不等同于空值,而空值在逻辑上没有值。同时,介绍了R语言中is.logical(condition)的各种返回值情况,并指出在if-else循环中,numeric(0)和logical(0)虽然不是NULL对象,但由于它们的长度为0,不被视为有效的逻辑值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

logical(0) 不等于 numeric(0)。两者都不等于NULL值,即is.null(logical(0))和is.null(numeric(0))返还值都是FALSE。这很有意思,说明长度为零的值有时却不会别算为空值,但空值的定义却是函数中没有被赋值的参数,特征就是没有值。如何区分NULL和NA?很简单,后者的logical length是1,而前者的logical length是0,意思是假如用is.logical判断NA的逻辑值,得到的结果是TRUE。NA可以为正无穷或负无穷,但NULL永远代表的是没有这个值,一个空集的概念。

总结一下is.logical(condition)的返回值, 括号中的条件为以下状态:

1. numeric(0) == numeric(0)和numeric(0) != numeric(0),返回TRUE。

2. logical(0), numeric(0), NULL,返回FALSE。

3. NA,返回TRUE。

NULL还有一个问题,就是如果用if-else循环,if(条件)的条件中的假如出现变量被“赋值”是NULL,numeric(0),还是logical(0),就会出现error message说条件中赋值长度不能为零。这里tricky的地方在于,尽管logical(0)和numeric(0)并不是NULL object,由于它们三者的“长度”都是零,它们都不算是逻辑值。

掌握R语言中的apply函数族(转)

转自:http://blog.fens.me/r-apply/ 前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值