R验证包。为任意列

时间:2017-09-27 15:53:32

标签: r

我是R的新手,我遇到了一个让我对语言运作方式感到困惑的问题。有一个包," validate",可以创建可用于检查数据是否符合预期的对象。 测试一些玩具数据,我发现虽然以下代码按预期工作:

library(validate)

I <- indicator( 
   cnt_misng =  number_missing(x)    
 , sum = sum(x, na.rm = TRUE)
 , min = min(x, na.rm = TRUE)
 , mean = mean(x, na.rm = TRUE)
 , max = max(x, na.rm = TRUE)
) 

dat <- data.frame(x=1:4, y=c(NA,11,7,8), z=c(NA,2,0,NA))
C <- confront(dat, I)
values(C)

但是,我发现我无法创建一个函数来返回数据框任意列的指示符对象。这是我失败的尝试:

check_values <- function(data, x){ 
    print(x)
    I <- indicator( 
        cnt_misng =  number_missing(eval(x))    
        , max = max(eval(x), na.rm = TRUE)
    ) 
    C <- confront(df, I)
    return(C)
}

df <- data.frame(A=1:4, B=c(NA,11,7,8), C=c(NA,2,0,NA))
C <- check_values(df,'B')
values(C)

如果我有一个大型数据集,我希望能够遍历列表列表,并为列表中的每个列具有相同格式的报告。在这一点上,我可能会放弃这个包,并找到另一种更直接的方法。但是,我仍然很好奇这是如何工作的。看起来应该有一种方法来功能化这个指标对象的创建,这样我就可以重用代码来检查数据框的任意列的相同统计数据。

有什么想法吗?

0 个答案:

没有答案