2016-10-03 66 views
0

以下是數據的我的工作彙總上的空行R上

Manager Exp.in.ED Count.in.ED Exp.in.NPA Count.in.NPA 
A   12   1   N/A   N/A 
B   14   2   N/A   N/A 
C   12   1   N/A   N/A 
A   43   3   N/A   N/A 
B   12   1   N/A   N/A 
C   54   4   N/A   N/A 
B   23   1   N/A   N/A 
A   15   3   N/A   N/A 

因此,作爲這些數據的Exp.in.NPACount.in.NPA是空列樣品。因此,當我嘗試使用下面的代碼

data <- read.csv(file.choose(), header = TRUE) 
NPA_exp <- aggregate(data$Exp.in.NPA ~ data$Manager, 
        FUN = sum, na.action = na.pass, na.rm = TRUE) 

在控制檯聚集他們來說,這是表示FUN

錯誤(X [我],...):無效「類型'(字符)

並且輸出給出了一些非空值,而期望的輸出是對應於每個Manager的N/A。

但是,當我運行相同的代碼Exp.in.ED它給出了正確的結果。

回答

0

問題出在N/A,讀數爲character(嚴格爲factor,默認值爲read.csv)。他們需要轉換爲NA

這是可以做到的,例如,

data <- data.table::fread("Manager Exp.in.ED Count.in.ED Exp.in.NPA Count.in.NPA 
A   12   1   N/A   N/A 
B   14   2   N/A   N/A 
C   12   1   N/A   N/A 
A   43   3   N/A   N/A 
B   12   1   N/A   N/A 
C   54   4   N/A   N/A 
B   23   1   N/A   N/A 
A   15   3   N/A   N/A", 
na.strings = "N/A") 

print(data) 
    Manager Exp.in.ED Count.in.ED Exp.in.NPA Count.in.NPA 
1:  A  12   1   NA   NA 
2:  B  14   2   NA   NA 
3:  C  12   1   NA   NA 
4:  A  43   3   NA   NA 
5:  B  12   1   NA   NA 
6:  C  54   4   NA   NA 
7:  B  23   1   NA   NA 
8:  A  15   3   NA   NA 

現在都聚集做的工作:

aggregate(data$Exp.in.NPA ~ data$Manager, 
      FUN = sum, na.action = na.pass, na.rm = TRUE) 
    data$Manager data$Exp.in.NPA 
1   A    0 
2   B    0 
3   C    0 

aggregate(data$Exp.in.ED ~ data$Manager, 
      FUN = sum, na.action = na.pass, na.rm = TRUE) 
    data$Manager data$Exp.in.ED 
1   A    70 
2   B    49 
3   C    66