首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不理解顺序()在数字和字符上的用法

不理解顺序()在数字和字符上的用法
EN

Stack Overflow用户
提问于 2022-01-12 17:22:09
回答 1查看 35关注 0票数 0
代码语言:javascript
复制
rankhospital<- function(state, outcome, num = "best")
{
  outcome1 <- read.csv("outcome-of-care-measures.csv",
                   colClasses = "character")
 if(!any(state == outcome1$State)){
 stop("invalid state")}
 else if((outcome %in% c("heart attack", "heart failure",
                      "pneumonia")) == FALSE) {
 stop(print("invalid outcome"))
  }
 outcome2 <- subset(outcome1, State == state)
 if (outcome == "heart attack") {
 colnum <- 11
  }
 else if (outcome == "heart failure") {
 colnum <- 17
  }
 else {
 colnum <- 23
 }
 outcome2[ ,colnum] <- as.numeric(outcome2[ ,colnum])
 **outcome3 <- outcome2[order(outcome2[ ,colnum],outcome2[,2]), ]**
 outcome3 <- outcome3[(!is.na(outcome3[ ,colnum])),]
 if(num == "best"){
  num <- 1
  }            
   else if (num == "worst"){
   num <- nrow(outcome3)
    }      
   return(outcome3[num,2])
  }

  # example output:
   > rankhospital("NC", "heart attack", "worst")
   > [1] "WAYNE MEMORIAL HOSPITAL"

嗨,我正在研究这组代码,它是根据三种疾病的死亡率对美国各州的医院进行排名的,死亡率越低,医院就越好。我当时正在阅读和研究代码,并被

代码语言:javascript
复制
       outcome3 <- outcome2[order(outcome2[ ,colnum],outcome2[,2]), ]

最基本的是,在数据集中,第11、17和23栏是每种疾病的死亡率,第2栏是“医院名称”,第7栏是" state ",这是每个耗散性疾病的对应状态。让我困惑的代码是将某一疾病的死亡率从一个州的最低到最高排序,并给医院的名字下命令。但这对我来说没有任何意义,因为排序函数似乎将死亡率-- outcome2、colnum和医院名称--排序为2,2,如果它们之间不相对应,那么就没有意义,因为结果不会返回死亡率排名的医院名称。但这条线应该是正确的,并对死亡率和相应的医院名称进行排序。我希望有人能帮助我解释这一行代码是如何工作的。谢谢你,苏

EN

回答 1

Stack Overflow用户

发布于 2022-01-13 12:01:18

感谢上面的评论,我阅读了“帮助”页面,并看到了其中的示例是如何工作的。我只想解释一下这种情况:

代码语言:javascript
复制
  outcome3 <- outcome2[order(outcome2[ ,colnum],outcome2[,2]), ]

在这一行中,outcome2[ ,colnum]将输出死亡率,order()将将数据排序从最小到最大,而每列中的其余行也将根据这个新顺序更改位置。因此,对于这种情况,不需要添加医院名称,这是作为参数的order()的第二列。

然而,在死亡率数据的排序中,可能会有一些数据具有相同的数值,这意味着某些医院对某种疾病的死亡率可能是相同的,因此,“医院名称”作为order()的第二个论点,将死亡率从"a“排序为"z”。

因此,基本思想是,order()对一列(第一arg)中的数据进行排序,如果出现一致数据,则order()将对该一致性数据的第二个参数(另一列)进行排序,这将根据参数1的顺序将其他列中的对应数据重新定位。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70685797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档