我有这个df:
Value Quantity Percentage
1 One 18 0.409
2 Three 2 0.045
3 Five 24 0.545
4 Total 44 0.999
值列具有六个因子级别:
> levels(df$Value)
[1] "One" "Two" "Three" "Four" "Five"
[6] "Total"
在创建上面的df
之后,我试图添加在df中没有值的一个或多个因子,因为我需要绘制此表并显示哪个Value
具有{ {1}}。喜欢:
Quantity == 0
但是,为了避免在此示例中仅针对 Value Quantity Percentage
One 18 0.409
Two 0 0
Three 2 0.045
Four 0 0
Five 24 0.545
Total 44 0.999
和Two
的解决方案,可能还会发生以下情况:
Four
,或者可能只有两个因子值具有Quantity value > 0
。这样说,我正在尝试找到一种解决方案,在其中检查哪个因素不在df中(因为它具有Quantity > 0
,并且如果该因素具有Quantity == 0
,则按需要添加到df中上面的输出。答案 0 :(得分:2)
有可能在此解决方案#用所有级别填充第一列
df$Value<-factor(df$Value, levels=c("One", "Two", "Three", "Four", "Five", "Total" ))
#complete and fill the table
library(tidyr)
complete(df, Value, fill=list(Quantity = 0, Percentage =0))
df
# A tibble: 6 x 3
Value Quantity Percentage
<fct> <dbl> <dbl>
1 One 18 0.409
2 Two 0 0
3 Three 2 0.045
4 Four 0 0
5 Five 24 0.545
6 Total 44 0.999