R 子集矩阵,维数不正确
我正在尝试编写一个函数,它可以告诉我在每个州,从给定的数据集中,第n个最好的医院,用于治疗特定的疾病 df是一个包含许多列的大型数据集,因此我制作了我的_数据,其中只包含我需要的信息:医院名称、州和死亡率。然后我继续编写函数,如下所示 我希望从head(rankall(20))获得的输出是cbind(c(,“D W MCMILLAN纪念医院”,“阿肯色州卫理公会医疗中心”,“约翰c林肯鹿谷医院”,“谢尔曼橡树医院”,“天空岭医疗中心”,“中州医疗中心”,“南佛罗里达浸信会医院”),c(“AK”,“AL”,“AR”、“AZ”、“CA”、“CO”、“CT”、“DC”、“DE”、“FL”)) 然而,我在基于状态的数据[3]中得到了错误:维数不正确 当我尝试用c(“AK”、“AL”、“AR”、“AZ”、“CA”、“CO”、“CT”、“DC”、“DE”、“FL”)替换sort(unique(state_names))时,我得到的是大多数行的预期输出,但不是第7行和第10行。第7行给出的是“ROCKVILLE GENERAL HOSPITAL”,“CT”,第10行给出的是“DOCTORS HOSPITAL INC”,“FL” 由于我刚刚开始使用这个平台,并学习编写代码,我为许多编辑和不足之处表示歉意。非常感谢大家一直以来对我的帮助R 子集矩阵,维数不正确,r,subset,dimensions,R,Subset,Dimensions,我正在尝试编写一个函数,它可以告诉我在每个州,从给定的数据集中,第n个最好的医院,用于治疗特定的疾病 df是一个包含许多列的大型数据集,因此我制作了我的_数据,其中只包含我需要的信息:医院名称、州和死亡率。然后我继续编写函数,如下所示 我希望从head(rankall(20))获得的输出是cbind(c(,“D W MCMILLAN纪念医院”,“阿肯色州卫理公会医疗中心”,“约翰c林肯鹿谷医院”,“谢尔曼橡树医院”,“天空岭医疗中心”,“中州医疗中心”,“南佛罗里达浸信会医院”),c(“AK”,
df <- read.csv("outcome-of-care-measures.csv", colClasses = "character")
hospital_names<- df$Hospital.Name
state_names<- df$State
unique_state_names<- sort(unique(state_names))
#Initialise vector to store output
hospital<-character()
#Narrow down to 3 relevant columns
my_data<- cbind(hospital_names,state_names,df[,11])
rankall<-function(num){
for(i in unique_state_names){
state_based_data <- my_data[my_data[,2]==i,]
#Remove rows containing NAs
non_na_rows <- !is.na(as.numeric(state_based_data[,3]))
my_data2<- state_based_data[non_na_rows,]
#Rearrange according to mortality rate (3rd column) in ascending order
ranking <- order(as.numeric(my_data2[,3]))
my_ordered_data <- my_data2[ranking,]
#If the ranking required is higher than the number of hospitals with data available, then output is NA
if (num>length(ranking)){
hospital<-append(hospital,"NA")
}
#Otherwise, output is the hospital of that ranking
else{
ranked_hospital <- my_ordered_data[num,1]
hospital<-append(hospital,ranked_hospital)
}
}
answer<- cbind(hospital,unique_state_names)
print(answer)
}
df 1)这不是一个矩阵,它是一个数据框;2)第三列是空的,它是作为NA
的导入的吗?3)图像是发布数据(或代码)的一种非常糟糕的方式。你能以dput
格式发布样本数据吗?请用dput(df)
的输出编辑问题。或者,如果它的输出太大,用dput的输出(head(df,20))
(注意:df
是数据集的名称。)参考第1点)2)从@RuiBarradas开始,我指的是我的_数据矩阵的第三列,而不是df数据帧。关于@RuiBarradas的第三点,我已经添加了示例数据,我希望它可读。我对这个平台和R相对较新,所以任何指针都非常受欢迎。df是一个列表。只需添加'df 1)这不是一个矩阵,而是一个data.frame;2)3rd列为空,是否导入为NA
的?3)图像是发布数据(或代码)的一种非常糟糕的方式。能否以dput
格式发布样本数据?请使用dput(df)
的输出编辑问题。或者,如果问题太大,则使用dput(head(df,20))
的输出。(注意:df
是数据集的名称。)参考第1点)2)从@RuiBarradas开始,我指的是我的_数据矩阵的第三列,而不是df数据帧。关于@RuiBarradas的第三点,我添加了示例数据,我希望它可读。我对这个平台和R相对较新,所以非常欣赏任何指针。df是一个列表。只需添加“df”