r - 如何对数据集中的两列进行排序,我想按列距离和 GoingTo 排序?
问题描述
这是我的数据集,但我将其转换为数据框
travel <- data.frame(
date=c("1/6/2012","1/6/2012",
"1/4/2012","1/4/2012",
"1/3/2012","1/3/2012","1/2/2012")
,GoingTo=c("Home","GSK","Home",
"GSK","Home","GSK","Home")
,Distance=c("51.29","51.63","51.27",
"49.17","51.15","51.80","51.37"))
然后我尝试编写这段代码来对两列进行排序,但我有这个错误。
Data_Sort <- travel[sort(travel$Distance,travel$GoingTo , decreasing = TRUE),]
错误
Error in is.na(na.last) || na.last : invalid 'y' type in 'x || y'
解决方案
在R
中,我们需要order
而不是sort
assort
返回排序后的值而不是索引,而order
返回可用作行索引的索引
travel[order(travel$Distance,travel$GoingTo , decreasing = TRUE),]
# date GoingTo Distance
#6 1/3/2012 GSK 51.80
#2 1/6/2012 GSK 51.63
#7 1/2/2012 Home 51.37
#1 1/6/2012 Home 51.29
#3 1/4/2012 Home 51.27
#5 1/3/2012 Home 51.15
#4 1/4/2012 GSK 49.17
或在dplyr
library(dplyr)
travel %>%
arrange(desc(Distance), desc(GoingTo))
# date GoingTo Distance
#1 1/3/2012 GSK 51.80
#2 1/6/2012 GSK 51.63
#3 1/2/2012 Home 51.37
#4 1/6/2012 Home 51.29
#5 1/4/2012 Home 51.27
#6 1/3/2012 Home 51.15
#7 1/4/2012 GSK 49.17
使用sort.int
,可以选择返回index.return = TRUE
然后提取ix
元素,但它不适用于这里,因为列不是类integer
推荐阅读
- version-control - 如何使用 TeamCity VCS 的特定目录进行配置
- php - PHP CURL 没有得到响应,但 CLI curl 有
- typescript - NestJS 不会在任何地方打印日志消息
- python - 给定具有列表的变量,如何输出函数数组
- html - 根据其他元素的高度设置margin-top
- pandas - 给定列的行中值的每个条目的熊猫频率
- svn - 用SVN将分支推入主干
- windows - 在管理文件夹上使用 TortoiseGit
- c# - Xamarin - 在 WebView 中请求相机权限
- jquery - jquery ajax jsonp 和 angularjs $http json 的区别