Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 子集矩阵,维数不正确_R_Subset_Dimensions - Fatal编程技术网

R 子集矩阵,维数不正确

R 子集矩阵,维数不正确,r,subset,dimensions,R,Subset,Dimensions,我正在尝试编写一个函数,它可以告诉我在每个州,从给定的数据集中,第n个最好的医院,用于治疗特定的疾病 df是一个包含许多列的大型数据集,因此我制作了我的_数据,其中只包含我需要的信息:医院名称、州和死亡率。然后我继续编写函数,如下所示 我希望从head(rankall(20))获得的输出是cbind(c(,“D W MCMILLAN纪念医院”,“阿肯色州卫理公会医疗中心”,“约翰c林肯鹿谷医院”,“谢尔曼橡树医院”,“天空岭医疗中心”,“中州医疗中心”,“南佛罗里达浸信会医院”),c(“AK”,

我正在尝试编写一个函数,它可以告诉我在每个州,从给定的数据集中,第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”

由于我刚刚开始使用这个平台,并学习编写代码,我为许多编辑和不足之处表示歉意。非常感谢大家一直以来对我的帮助

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”