我想計算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