经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
R语言论坛
请教data.frame 多列排序问题
楼主
nothk
7783
3
收藏
2016-05-14
a<-c(1,3,2,4)
b<-c("dd","aa","bb","cc")
c<-c(TRUE,FALSE,FALSE,FALSE)
d<-data.frame(a,b,c)
> d
a b c
1 1 dd TRUE
2 3 aa FALSE
3 2 bb FALSE
4 4 cc FALSE
我想让C列从小到大排序,再B列从大到小排序
理想的结果:
a b c
1 4 cc FALSE
2 2 bb FALSE
3 3 aa FALSE
4 1 dd TRUE
网上搜出来的方法是按 d[order(d
$
c,-d
$
b),] 但是会出现错误:
Warning message:
In Ops.factor(d$b) : ‘-’ not meaningful for factors
如果我想用这个order函数,要怎么实现正确排序?
还有就是,我最后想到的方法是用sqldf包,直接sqldf("select * from d order by c, b DESC")搞定,
但因为实际要处理的data.frame很大,我需要某十列从小到大,某几列从大到小。
sqldf包处理起来感觉挺慢的, 不知道有没有更加节约时间有效率的方法?
多谢了。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
hyu9910
2016-5-14 17:05:57
多写几行代码,自己写个小程序排序一列。 然后多次调用就可以吧。
或者,EXCEL里面排序2次EXPAND,也可以
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
藤椅
万人往LVR
2016-5-14 17:33:10
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
板凳
nothk
2016-5-14 17:47:00
万人往LVR 发表于 2016-5-14 17:33
运行成功,多谢,我昨天试了as.numeric不成功,不过把as.integer忘记了....
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
怎样去掉 data frame 中的某个值,如去掉0或NA值
关于data.frame的一个问题
如何根据data.frame2来修改data.frame1
如何拆分单一的data.frame
R data frame的问题
关于data.frame的几个问题
如何计算data.frame里每一列为0和NA的个数
[求助]如何往data.frame里面加新列
如何将data.frame的第一列变为属性
data.frame的问题
栏目导航
R语言论坛
Stata专版
经管高考
数据求助
经管文库(原现金交易版)
学道会
热门文章
无溶剂型丙烯酸压敏胶市场报告,全球前10强 ...
徐老师2025新版Nodejs课程含项目实战
Nature点赞!哈佛MIT最新作:AI科学家时代来 ...
2025新书-Multivariate analysis and machi ...
全球首款水运“高铁”来了!芜湖制造
双向DC-DC充电模块市场分析,全球前5强生产 ...
2025年全行业薪酬报告
国防军工行业2025四季度策略:内需军贸,有 ...
全球微波消融治疗仪市场分析,全球前13强生 ...
三轴等离子清洗机市场分析:全球前5强生产商 ...
推荐文章
10月重磅来袭|《打造Coze/Dify专属学术智能 ...
高校老师和学生都在偷偷上的智能体课,到底 ...
最快1年拿证,学费不足5W!热门美国人工智能 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群