我有一个名为df的数据框,其中有一个名为Car Type的列。
User CarType
1 AUDI
2 BMW
3 AUDI
4 BMW
5 <NA>
6 CHEVROLET
7 <NA>
我使用聚合来查找每种CarType的频率。
freq<-aggregate(df$CarType,by=list(df$CarType),function(c) length(c))
> freq
Group.1 x
1 Audi 2
2 BMW 2
3 CHEVROLET 1
如何在与频率相同的数据帧中获得整列中的NA频率?要求的输出:
> freq
Group.1 x
1 Audi 2
2 BMW 2
3 CHEVROLET 1
4 NA 2
答案 0 :(得分:6)
只需使用table
及其useNA
参数即可。比aggregate
更有效率,也节省了大量的打字
as.data.frame(table(df$CarType, useNA = "ifany"))
## Var1 Freq
## 1 AUDI 2
## 2 BMW 2
## 3 CHEVROLET 1
## 4 <NA> 2
答案 1 :(得分:0)
您可以尝试:
df2<-data.frame("NA",sum(is.na(df$CarType)))
colnames(df2)<-c("Group.1","x")
freq<-rbind(df2,freq)
答案 2 :(得分:0)
默认情况下,由于默认参数为exclude = NA,因子不会将NA视为某个级别。将其切换为exclude = NULL将为您提供所需的信息:
freq<-aggregate(factor(df$CarType, exclude = NULL),by=list(factor(df$CarType, exclude = NULL)),function(c) length(c))