我目前在dplyr工作,并重塑:
我有一个45个城市的列表,每个城市有大约10列数据。我想要每个城市/行的三个最小值。
我能够让他们完成这个:
new_df <- melt(Df) ## giving me the long form of the data
newer_df2$value2 <- new_df$value * -1
top3 <- newer_df %>% group_by(City) %>% arrange(value2) %>% top_n(3)
以我为例:
City Value
City 1 -1000
City 1 -999
City 1 -998
city 2 -500
city 2 -499
city 2 -498`
等...
因此,虽然这在技术上是答案,但是按照相反的顺序更容易,如下所示,因此我可以将其导出为csv,而无需在excel中对其进行格式化。
City Value
City 1 -998
City 1 -999
City 1 -1000
city 2 -498
city 2 -499
city 2 -500`
**当我不加-1时,它会给出三个最高值,但顺序正确
答案 0 :(得分:0)
我认为您可能希望在 arrange
之后使用top_n
。例如:
new_df %>% top_n(-3, value) %>% arrange(desc(value))