如果您想查找数据框中每列的最大频率并返回因子,类别和频率,您会怎么做?
所以我的代码如下:
dfreqcommon = data.frame()
for (i in 1:ncol(diamonds)){
dfc = data.frame(t(table(diamonds[,i])))
dfc$Var1 = names(diamonds)[i]
dfreqcommon = rbind(dfreqcommon, dfc)
}
names(dfreqcommon) = c("Factors","Categories","Frequency")
dfreqcommon
但这似乎返回了所有因素,类别和频率。我只想要每个因素的最大频率并获得其类别。我试图将dfc更改为
dfc = data.frame(max(t(table(diamonds[,i]))))
但它没有显示类别。有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
另一种方式,python-giggle\lib\giggle\test\data
R:
base
答案 1 :(得分:1)
你的意思是你想要一个像这样的结果吗?以下示例显示了如何为ggplot2::diamonds
数据集中的每列获取最常出现的值。
library(dplyr)
library(tidyr)
ggplot2::diamonds %>%
mutate_all(as.character) %>%
gather(varname, value) %>%
count(varname, value) %>%
group_by(varname) %>%
arrange(desc(n), .by_group = TRUE) %>%
slice(1)
#> # A tibble: 10 x 3
#> # Groups: varname [10]
#> varname value n
#> <chr> <chr> <int>
#> 1 carat 0.3 2604
#> 2 clarity SI1 13065
#> 3 color G 11292
#> 4 cut Ideal 21551
#> 5 depth 62 2239
#> 6 price 605 132
#> 7 table 56 9881
#> 8 x 4.37 448
#> 9 y 4.34 437
#> 10 z 2.7 767