首页 > 解决方案 > 将返回的 NULL 作为值添加到数据框中

问题描述

我有这些向量,我想将它们作为数据框,同时将第 4 个值也作为一个值,而不是第 4 个值是“NULL”并停止进一步处理

    a <- Dataset$price1
    b <- Dataset$price33
    c <- Dataset$price16
    d <- Dataset$price40

> a
[1] 0.76

> b
[1] 0.52

> c
[1] 0.93

> d
NULL

因此,这不起作用

    test <- c(a,b,c,d)

期望的结果:

> c(a,b,c,d)

[1] 0.76 0.52 0.93 0

谢谢你的帮助!

标签: rr-markdowntidyverse

解决方案


这是一种依赖于首先创建一个列表的方法,该列表可以本地保存NULL值:

result <- sapply(list(a,b,c,d),function(x)ifelse(is.null(x),0,x))

result
#[1] 0.76 0.52 0.93 0.00

is.vector(result)
#[1] TRUE

顺便说一句,我建议不要将变量分配给内部 R 函数共享的名称,例如c.

数据:

list2env(setNames(list(0.76,0.52,0.93,NULL),letters[1:4]),envir = globalenv())

推荐阅读