繁体   English   中英

在条件变为假之前计算数据帧每一行中非NA元素的数量

[英]count the number of non-NA elements in each row of a data frame before a condition becomes false

说我有以下数据集:

mydf <- data.frame(serial = c(1:3),
                   A = c(NA,"2011-01-01","2011-02-01"),
                   B = c("2010-12-01","2011-01-01","2011-02-01"),
                   C = c("2010-12-01","2011-01-01",NA)
                    )

还有另一个向量称为极限

limit <- c("2011-02-10","2011-03-01","2011-01-12")

将限制视为mydf每行的阈值日期。 我想计算一下在阈值日期之前mydf每行非零/非NA的次数。 在这种情况下,如果我将结果存储在一个称为“场合”的向量中,它将具有以下元素:2,3,2。

注意:每列下的元素显然是YYYY-mm-dd格式的日期。

colSum设置由“ <”创建的一组逻辑向量:

occasions <- colSums( sapply(mydf[-1], as.Date, format="%Y-%d-%m") < 
                                            as.Date(limit, format="%Y-%d-%m"), 
                     na.rm=TRUE )
occasions
#------
A B C 
2 3 2 

as.Date需要强制执行的逻辑比较的逻辑,但如果所有的值是真正的“YYYY-MM-DD”字符比较应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM