Problem with for loop: arguments imply differing number of rows: 0, 1

there is NA_character_

1 Like

Did you want to keep states with no hospitals in your data frame?

Hey @dromano,

I have managed to solve the issue, including states with no hospitals in my data frame. Below is my full command which now works perfectly! Thank you for all your help. Whenever there is no hospital, the program will print 'zero'.

state <- c('AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL','GA','HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VI', 'VA', 'WA', 'WV', 'WI', 'WY', 'GU')

Rankall <- function(y, z){

if (z == 'best'){ z <- 1

Emptydataframe = NULL

for (x in state){

filtered <- filter(outcomemeasures, outcomemeasures$State %in% x)

filtered <- filtered[!is.na(filtered[y]),]

datafiltered <- filtered[order(filtered[,y],filtered[,'Hospital.Name']),]

hospital <- slice(datafiltered, z)

Printname <- hospital$Hospital.Name

if (identical(Printname,character(0))) {

Printname <- "zero"} else {Printname <- Printname}

Printdataname <- data.frame(Printname)

Emptydataframe <- rbind(Emptydataframe,Printdataname)

}

Stateframe <- data.frame(state)

Overallframe <- cbind(Emptydataframe,Stateframe)

print(Overallframe)

}

else if (z == 'worst'){

Emptydataframe = NULL

for (x in state){

filtered <- filter(outcomemeasures, outcomemeasures$State %in% x)

filtered <- filtered[!is.na(filtered[y]),]

datafiltered <- filtered[order(filtered[,y],filtered[,'Hospital.Name']),]

j <- datafiltered

z <- nrow(j)

hospital <- slice(datafiltered, z)

Printname <- hospital$Hospital.Name

if (identical(Printname,character(0))) {

Printname <- "zero"} else {Printname <- Printname}

Printdataname <- data.frame(Printname)

Emptydataframe <- rbind(Emptydataframe,Printdataname)

}

Stateframe <- data.frame(state)

Overallframe <- cbind(Emptydataframe,Stateframe)

print(Overallframe)

}

else if (z != 'best' && z != 'worst'){

Emptydataframe = NULL

for (x in state){

filtered <- filter(outcomemeasures, outcomemeasures$State %in% x)

filtered <- filtered[!is.na(filtered[y]),]

datafiltered <- filtered[order(filtered[,y],filtered[,'Hospital.Name']),]

hospital <- slice(datafiltered, z)

Printname <- hospital$Hospital.Name

if (identical(Printname,character(0))) {

Printname <- "zero"} else {Printname <- Printname}

Printdataname <- data.frame(Printname)

Emptydataframe <- rbind(Emptydataframe,Printdataname)

}

Stateframe <- data.frame(state)

Overallframe <- cbind(Emptydataframe,Stateframe)

print(Overallframe)

}

}
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.