我想计算R数据框中有效条目的数量(数值),这些条目是由另一个字段分组的每个特定字段(本例中为“公司”)。计算R数据框中的数值,并按另一个字段分组
Company <- rep(c('A','B','C'),3)
Dates <- c(rep('20130131',3),rep('20130228',3),rep('20130331',3))
F1 <- c(1:3,NA,NA,6:9)
F2 <- c(21:27,NA,NA)
F3 <- c(31:39)
F4 <- c(NA,NA,NA,44:48,NA)
df <- data.frame(Company, Dates, F1, F2, F3, F4)
产生的data.frame
> df
Company Dates F1 F2 F3 F4
1 A 20130131 1 21 31 NA
2 B 20130131 2 22 32 NA
3 C 20130131 3 23 33 NA
4 A 20130228 NA 24 34 44
5 B 20130228 NA 25 35 45
6 C 20130228 6 26 36 46
7 A 20130331 7 27 37 47
8 B 20130331 8 NA 38 48
9 C 20130331 9 NA 39 NA
那么我想知道每个“公司”和各领域的许多日期如何拥有有效的(数字)值。 输出将看起来像
Company F1 F2 F3 F4
A 2 3 3 2
B 2 2 3 2
C 3 2 3 1
数据帧是我处理将有大约500家企业,365个日期和45场,所以做事手动是不是一个真正的选择。
任何想法将不胜感激。
感谢,
+1。考虑到OP有许多列,'.SDcols'可以被定义为'setdiff(colnames(dt),“Company”)' – TheComeOnMan
@Codoremifa - 在这种情况下,可能实际上是:'setdiff(colnames(dt),c “公司”,“日期”))或甚至paste0(“F”,1:4) – thelatemail