r - 如何按字母顺序对数据框的行进行排序?

标签 r sorting char alphabetical

这个问题在这里已经有了答案:





How to sort a dataframe by multiple column(s)

(19 个回答)


6年前关闭。




我正在整理 c按字母顺序排列 if x[i]== x[i+1] .我用过 order()功能,但它改变了 x列也是。我想订购整行:

 best <- function(state){
 HospitalName<-vector()
 StateName<-vector()
 HeartAttack<-vector()

  k<-1

  outcome<-read.csv("outcome-of-care-measures.csv",colClasses= "character")

 temp<-(outcome[,c(2,7,11,17,23)])

for (i in 1:nrow(temp)){
 if(identical(state,temp[i,2])==TRUE){
    HospitalName[k]<-temp[i,1]
    StateName[k]<-temp[i,2]
    HeartAttack[k]<-as.numeric(temp[i,4])
    k<-k+1
     }}
    frame<-data.frame(cbind(HospitalName,StateName,HeartAttack))


  library(dplyr)
  frame %>%
  group_by(as.numeric(as.character(frame[,3]))) %>%
  arrange(frame[,1])
    }

  Output:
                               HospitalName StateName HeartAttack
 1              FORT DUNCAN MEDICAL CENTER        TX         8.1
 2         TOMBALL REGIONAL MEDICAL CENTER        TX         8.5
 3        CYPRESS FAIRBANKS MEDICAL CENTER        TX         8.7
 4                  DETAR HOSPITAL NAVARRO        TX         8.7
 5                  METHODIST HOSPITAL,THE        TX         8.8
 6         MISSION REGIONAL MEDICAL CENTER        TX         8.8
 7  BAYLOR ALL SAINTS MEDICAL CENTER AT FW        TX         8.9
 8       SCOTT & WHITE HOSPITAL-ROUND ROCK        TX         8.9
 9         THE HEART HOSPITAL BAYLOR PLANO        TX           9
 10    UT SOUTHWESTERN UNIVERSITY HOSPITAL        TX           9
..                                    ...       ...         ...
Variables not shown: as.numeric(as.character(frame[, 3])) (dbl)

输出不包含 HeartAttack 列,我不明白为什么?

最佳答案

dplyr 的一种解决方案:

library(dplyr)
df %>%
  group_by(x) %>%
  arrange(c)

或者正如@Akrun 在下面的评论中提到的那样
df %>%
  arrange(x,c)

如果你对分组不感兴趣。取决于你想要什么。

输出:
Source: local data frame [5 x 2]
Groups: x

  x c
1 2 A
2 2 D
3 3 B
4 3 C
5 5 E

基础 R 中还有另一种解决方案,但它仅在您的 x 列按原样排序时才有效,或者如果您不介意更改它的顺序:
> df[order(df$x, df$c), , drop = FALSE]
  x c
2 2 A
1 2 D
4 3 B
3 3 C
5 5 E

关于r - 如何按字母顺序对数据框的行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28716143/

相关文章:

r - PowerPC 和 SPARC(均为大端)上的 data.table 不正确行为

r - 我们如何从子函数中提取外部函数的名称?

R 数据表 : Hide search box for individual columns

r - 使用R从PDF文件中提取字符字体大小

c - K叉树(排序词)

c++ - std::string 在第一次分配中不使用自定义分配器

javascript - 如何使用自定义排序顺序对 Angular js中的对象进行排序?

algorithm - 减少正数排序任务以证明 nlogn 复杂度

c++ - 字符串运算符+(重载)char数组和string.in cpp中的不同行为

c++ - 转换为 C 字符串会给出奇怪的符号