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