Цикл по массиву и присвоение значения вектору, давая NULL неправильное значение - PullRequest
0 голосов
/ 28 июня 2018

У меня есть вектор, называемый «состояния» со всеми состояниями, двумя буквенными сокращениями, и временный кадр данных temp1 с 3 столбцами: «Hospital.Name», «инфаркт» и «State»

temp1   Hospital.Name                     heart attack State
99      PROVIDENCE ALASKA MEDICAL CENTER        13.4    AK
103     ALASKA REGIONAL HOSPITAL                14.5    AK
102     FAIRBANKS MEMORIAL HOSPITAL             15.5    AK

В таблице temp1 есть еще много больниц для каждого штата

states
 [1] "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" "GA" "GU" "HI" "IA" "ID" "IL" "IN" "KS" "KY" "LA" "MA" "MD" "ME" "MI" "MN" "MO" "MS"
[28] "MT" "NC" "ND" "NE" "NH" "NJ" "NM" "NV" "NY" "OH" "OK" "OR" "PA" "PR" "RI" "SC" "SD" "TN" "TX" "UT" "VA" "VI" "VT" "WA" "WI" "WV" "WY

Когда я запускаю этот код сам по себе с первым значением массива "states", я получаю правильный результат

resulttest <- subset(temp1[1,], State ==states[1])
resulttest

   Hospital.Name                     heart attack State
99 PROVIDENCE ALASKA MEDICAL CENTER         13.4    AK

Но когда я пытаюсь запустить это в цикле для всех состояний в векторе "состояния", я получаю значение NULL

for (i in 1:length(states)){
     resulttest <- subset(temp1[1,], State ==states[i])
     }

# > resulttest
#
# [1] Hospital.Name heart attack  State        
# <0 rows> (or 0-length row.names)

Может кто-нибудь помочь мне с функцией цикла ?, Спасибо

1 Ответ

0 голосов
/ 28 июня 2018

Это то, что я в итоге сделал с помощью комментариев, он также добавляет результаты в новый фрейм данных под названием «результат», num - это переменная. Спасибо за помощь:)

является переменной

 result <- data.frame(matrix(ncol = 3, nrow = 0))
 x <- c("Hospital.Name", "heart attack", "State")
 colnames(result) <- x

   for (i in 1:length(states)){
        resulttest <- temp1[temp1$State %in% states[i],]
        result[i,] <-resulttest1[num,]

      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...