van*_*ren 2 sorting r dataframe
我执行以下代码:
df<-data.frame(word=c("play","win","offer","http"),frequency=c(321,355,123,564),type=c("nonspam","nonspam","spam","spam"))
df=arrange(df,desc(frequency),desc(type))
df=df[order(df[,2],df[,3]),]
Run Code Online (Sandbox Code Playgroud)
结果是:
word frequency type
4 offer 123 spam
3 play 321 nonspam
2 win 355 nonspam
1 http 564 spam
Run Code Online (Sandbox Code Playgroud)
但我想根据频率和类型对数据框进行排序,例如:
word frequency type
1 http 564 spam
4 offer 123 spam
2 win 355 nonspam
3 play 321 nonspam
Run Code Online (Sandbox Code Playgroud)
要按升序排序:
像这样使用 dplyr:
library(dplyr)
df <- df %>% arrange(type, frequency, word)
Run Code Online (Sandbox Code Playgroud)
只需按照您想要排序的顺序排列变量。
要按降序排序:
只需在要以相反顺序排序的变量前使用负号即可。像这样。
df %>% arrange(-type, frequency, word)
Run Code Online (Sandbox Code Playgroud)
处理文本...
如果您想尝试使用上述方法以相反的顺序对文本进行排序,则可能会出现错误。要排列分类变量,请将变量包裹在 desc() 周围,如下所示:
df %>% arrange(desc(word))
Run Code Online (Sandbox Code Playgroud)