gpt4 book ai didi

R 字符值为 null,但未通过 is.null() 测试

转载 作者:行者123 更新时间:2023-12-01 23:31:34 24 4
gpt4 key购买 nike

非常奇怪的错误,值不为空,但声称为空,即使它在 is.null() 测试中评估为 FALSE。见下文。在这种情况下,pid 似乎为空,但测试失败,导致我在代码中出现各种“下一步”问题。

> pid <- system2('ps', args = "-ef | grep 'ssh -f' | grep -v grep | tr -s ' ' | \ cut -d ' ' -f 3", stdout = TRUE)
> pid
character(0)
> is.null(pid)
[1] FALSE
> if(!is.null(pid) && nchar(pid)) {cat('got some pid')}
Error in if (!is.null(pid) && nchar(pid)) { :
missing value where TRUE/FALSE needed
> if(!is.null(pid)) {cat('got some pid? Really?')}
got some pid? Really?

人们认为这里发生了什么?这是我的 R 版本信息:

> version
_
platform x86_64-pc-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 3
minor 2.2
year 2015
month 08
day 14
svn rev 69053
language R
version.string R version 3.2.2 (2015-08-14)
nickname Fire Safety

完整版操作系统:

Linux rserver 3.16.0-44-generic #59~14.04.1-Ubuntu SMP Tue Jul 7 15:07:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

最后,我只是想让这段代码运行:

> if (nchar(pid) > 0) {
+ cat('do something\n')
+ }
Error in if (nchar(pid) > 0) { : argument is of length zero

最佳答案

您有一个空字符变量这一事实并不意味着它是 NULL。这是一个例子:

pid <- character()
> pid
character(0)
> is.null(pid)
[1] FALSE
> pid <- NULL
> pid
NULL
> is.null(pid)
[1] TRUE

关于R 字符值为 null,但未通过 is.null() 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com