我正在使用dplyr汇总一些数据,并将其按两个因素进行分组。问题不是第二个因素的所有级别都包括在第一个因素中,并且我的数据框未显示没有结果的实例。
我想添加一个na.rm = FALSE语句(我认为),但这不起作用。
我还尝试了mutate函数以包括所有级别的因子,但是它也不起作用
这是我的代码,其中包含mutate
Dataframe <- UKData %>%
filter(!is.na(REGION))%>%
group_by(REGION,EMPSIZE) %>%
summarise(NumberofEmployers=length(Employers)) %>%
mutate(EMPSIZE = factor(EMPSIZE, levels = z)) %>%
arrange(REGION,EMPSIZE)
因此,问题在于,并非每个地区都有所有雇主规模。雇主规模范围包含7个级别。我想要一张表来显示区域没有特定大小区域的NA。这可能吗?
更新,
所以数据看起来像这样:
Employers REGION EMPSIZE
Number 1 Scotland 1-4
Number 2 Scotland 5-49
Number 3 Scotland 50-499
Number 4 Scotland 500-999
Number 5 Scotland 1000-4999
Number 6 Scotland 5000+
Number 7 Scotland 50-499
Number 8 North West 5-49
Number 9 North West 1000-4999
Number 10 Yorkshire 5000+
Number 11 Yorkshire 50-499
Number 12 Yorkshire 5-49
Number 13 London 1-4
Number 14 London 5-49
Number 15 London 50-499
Number 16 London 500-999
Number 17 London 1000-4999
Number 18 London 5000+
Number 19 East 50-499
Number 20 East 1000-4999
因此,只有苏格兰和伦敦拥有全部6种可能的尺寸范围,其他地区则没有。因此,我想要的表应如下所示:
REGION EMPSIZE number
Scotland 1-4 1
Scotland 5-49 1
Scotland 50-499 2
Scotland 500-999 1
Scotland 1000-4999 1
Scotland 5000+ 1
North West 1-4 NA
North West 5-49 1
North West 50-499 NA
North West 500-999 NA
North West 1000-4999 1
North West 5000+ NA
Yorkshire 1-4 NA
Yorkshire 5-49 1
Yorkshire 50-499 1
Yorkshire 500-999 NA
Yorkshire 1000-4999 NA
Yorkshire 5000+ 1
London 1-4 1
London 5-49 1
London 50-499 1
London 500-999 1
London 1000-4999 1
London 5000+ 1
East 1-4 NA
East 5-49 NA
East 50-499 1
East 500-999 NA
East 1000-4999 1
East 5000+ NA
事后看来,也许我不在乎它们是否为NA或实际上为0-我确实希望表格中显示的水平
答案 0 :(得分:0)
如果他们没有EmpSize,那么为什么要在数据框中包含它?如果您是我,我会把缺少数据的行排除在外,因为NA只会使表更难以阅读。如果您的目标是显示EmpSize,则不会通过删除缺失值来“丢失”任何信息。如果有的话,将NA保留在表中更难阅读。 (而且0与NA也不相同,因此用0代替NA可能不是一个好主意)。