Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
R 如何检查分配给“的值”;“字符串”;_R - Fatal编程技术网

R 如何检查分配给“的值”;“字符串”;

R 如何检查分配给“的值”;“字符串”;,r,R,所以我有一个带有字符串(ID)的列表,但同时我的字符串是值的名称,其中一些值是空的。有没有办法运行一个循环来检查名称后面是否有值,或者只是空值 >list <- c("id1","id2","id3") >id1 dimension5 sessions 12 2 >id2 dimension5 sessions 13 4 >id3 NULL 获取每个项目或mget并检查它是否为.null: L <-

所以我有一个带有字符串(ID)的列表,但同时我的字符串是值的名称,其中一些值是空的。有没有办法运行一个循环来检查名称后面是否有值,或者只是空值

>list <- c("id1","id2","id3")
>id1
dimension5 sessions
        12        2
>id2
dimension5 sessions
        13        4
>id3
NULL

获取每个项目
mget
并检查它是否为.null:

L <- c("id1","id2","id3")
id1 <- c(12,2)
id2 <- c(13,4)
id3 <- NULL

stack(!vapply(mget(L), is.null, logical(1)))
#  values ind
#1   TRUE id1
#2   TRUE id2
#3  FALSE id3

L@RichardScriven-如果它根本不存在,它可能会返回
“错误:找不到对象'id3'”
。@RichardScriven是的,因为它是从Google Analytics中提取报告的结果。那个家伙没有达到我的条件,所以分配给他空值。你也可以用
NA
代替
logical(1)
,因为它也是合乎逻辑的,而且因为它是Fore@理查德斯克里文-如果我们在玩代码高尔夫,我只会使用
stack(!sappy(mget(L),is.null))
,但当输出格式已知时,我一直强迫自己使用
vappy
。@AlienDeg-试图将代码中的字符数减少到绝对最小。Richard的建议是将
logical(1)
替换为
NA
L <- c("id1","id2","id3")
id1 <- c(12,2)
id2 <- c(13,4)
id3 <- NULL

stack(!vapply(mget(L), is.null, logical(1)))
#  values ind
#1   TRUE id1
#2   TRUE id2
#3  FALSE id3