说我有以下数据集:
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
的向量limit <- c("2011-02-10","2011-03-01","2011-01-12")
将限制视为每行mydf的阈值日期。我希望在阈值日期之前计算每行mydf的非零/非NA次数。 在这种情况下,如果我将结果存储在一个名为occasion的向量中,它将具有以下元素:2,3,2。
注意:每列下的元素显然是YYYY-mm-dd格式的日期。
答案 0 :(得分:1)
colSum
- 由&#34;&lt;&#34;创建的一组逻辑向量:
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
需要强制执行逻辑比较的逻辑,但如果所有值都是真正的&#39; YYYY-MM-DD&#39;则字符比较应该有用。