如何引用列表内数据框中的列?

问题描述

我是R的新手,并且正在开发一个代码,该代码能够根据特定条件提供每个州特定级别的医院列表(Coursera的Johns Hopkins R编程类的最后一项任务)。我正在为学习R而审核课程,并且被困在最后一部分。

基本上,我正在使用一个包含多个列的数据集:医院名称,州和特定情况下30天的死亡计数。我正在用参数outcomenum创建一个函数,其中outcome是医疗状况,num是医院的指定等级。最终目标是一个数据框架,其中包含在其各自州内的特定num排名的医院列表。

我正在做的是将.csv文件读取到数据框中,并删除不重要的列,然后重新标记列标题,以使它们更易于引用。

data <- read.csv("outcome-of-care-measures.csv")
data <- select(data,c(2,7,11,17,23))
colnames(data) <- c("hospital","state","heart attack","heart failure","pneumonia")
data[[outcome]] <- as.numeric(as.character(data[[outcome]]))

然后,我正在做的是仅使用医院,州和死亡计数的新数据框,并对其进行简化,以使新数据框仅包含指定的死亡人数列(表示“心脏病发作”输入,这是唯一要分析的列)。我的方法是获取列表,并按状态缩写按字母顺序对其进行排序,然后按递增顺序对死亡人数进行计数。

outcomedata <- select(data,hospital,state,matches(outcome))
outcomedata <- arrange(outcomedata,outcomedata$state,outcomedata[[outcome]])

然后我按状态划分大数据帧,以使新数据帧列表中的每个数据帧都包含该州的医院。

statesplit <- split(outcomedata,outcomedata$state)

我的想法是使用rank()函数在每个数据框中创建一个新列,其中包含每个州在每个州的排名,并将死亡率列作为每个数据框的参数传递。换句话说,有没有一种方法可以使用lapply()在每个数据框中创建一个新列,并通过引用每个数据框中的变量名称来在其相应数据框中显示各医院的排名-我试图按照以下方式做某事:

hospital_rank <- rank(outcomedata[,2])
outcomedata <- mutate(outcomedata,Rank = hospital_rank)
specific_rank <- num
  
rank_hospital <- filter(outcomedata,outcomedata$Rank == specific_rank)

但是对每个数据帧执行此操作,并返回所有州处于指定等级的所有医院的数据帧。

非常感谢您的帮助,谢谢!

编辑:预期结果

  • 将参数outcomenum带入函数
  • 显示带有医院名称和州的数据框,所有医院名称和州均在其州内位于num的位置

例如,我对函数的一方面进行了设置,以使num = "best"在每种状态下都排名第一:

outcomedata <- select(data,outcomedata[[outcome]])
outcomedata <- distinct(outcomedata,.keep_all = TRUE)

   return(outcomedata)

这将返回this output,并在所有状态下都将继续。但是,除了找到排名第一的方法之外,我如何才能找到作为参数传递给初始函数的任何排名?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...