我得到一个freq表,但是我可以将这个表保存在csv文件中还是 - 更好 - 排序它还是提取最大值?
library(plyr)
count(birthdaysExample, 'month')
答案 0 :(得分:1)
我猜测数据的相关部分是什么样的,但无论如何,这应该会得到一个按值排序的频率表:
library(plyr)
birthdaysExample <- data.frame(month = round(runif(200, 1, 12)))
freq_df <- count(birthdaysExample, 'month')
freq_df[order(freq_df$freq, decreasing = TRUE), ]
这会给你:
month freq
5 5 29
9 9 24
3 3 22
4 4 18
6 6 17
7 7 15
2 2 14
10 10 14
11 11 14
8 8 13
1 1 10
12 12 10
获得最高的3个值:
library(magrittr)
freq_df[order(freq_df$freq, decreasing = TRUE), ] %>% head(., 3)
month freq
5 5 29
9 9 24
3 3 22
或者,只用基数R:
head(freq_df[order(freq_df$freq, decreasing = TRUE), ], 3)
dplyr
dplyr
是一个更新的方法,它更直观:
library(dplyr)
library(magrittr)
freq_df2 <- birthdaysExample %>%
group_by(month) %>%
summarize(freq = n()) %>%
arrange(desc(freq))
freq_df2
返回:
Source: local data frame [12 x 2]
month freq
1 5 29
2 9 24
3 3 22
4 4 18
5 6 17
6 7 15
7 2 14
8 10 14
9 11 14
10 8 13
11 1 10
12 12 10
它返回的对象不再是数据框,所以如果你想使用它的基本R函数,可能更容易将其转换回来,例如:
my_df <- as.data.frame(freq_df2)
如果您真的想要,可以将其写入CSV文件:
write.csv(my_df, file="foo.csv")