(R) как вставить значение «NA» в кадр данных? - PullRequest
0 голосов
/ 01 февраля 2019

У меня следующая проблема: у меня есть цикл for, который перебирает список «штатов» (то есть штатов США).Этот цикл for является частью функции, которая принимает аргумент «num».Во фрейме данных я хочу сохранить некоторые конечные данные в формате «имя» «состояние».

Однако, когда число аргументов в пределах «состояния» в списке меньше указанного «num», в кадре данных не может быть сохранено значение.

Поэтому я хочу добавить «пустую» строку данных во фрейм, чтобы предоставить пользователю значение «NA», означающее, что конкретное состояние не соответствует требованию «num».

Как я могу это сделать?Стандартный формат строк - это значения факторов.

Я попытался создать простой вектор, например, c («Имя», «Состояние») и используя пакет miscTools «insertRow».Оба не работают.Первый из них запрашивает «недопустимый уровень фактора», а miscTools работает только с матрицей (я использую фрейм данных).

for (i in 1:length(stateList)) {

    # create subset from total dataset based on 'state'
    stateSet <- subset(hospData, State == stateList[i]);

if (outcome == "heart attack") { 

    # select relevant columns, omit NA, sort by mortality rate, bind rank
    # copy hospital with corresponding rank in data frame
    stateSet <- select(stateSet, Hospital.Name, State, attack);
    stateSet <- na.omit(stateSet);

## arrange the heart attack rates from low to high, lowest is #1 rank.
    stateSet <- arrange(stateSet, attack, Hospital.Name);
    rank <- 1:length(stateSet[,1]);
    stateSet <- cbind(stateSet, rank);
         stateRank <- stateSet[num, c("Hospital.Name", "State")];

Здесь я хочу сделать строку «NA», так как нетзначение для данного данного состояния для указанного числа (которое больше, чем объем данных для этого состояния).

    if (num > length(stateSet[,1]) {
    stateRank <- c(stateList[i], "NA");
    frame <- rbind(frame, stateRank);
}

Затем я хочу обновить фрейм либо значением для состояния (то есть сердцем)смертность при атаке) ИЛИ значение «NA» для штата.

    frame <- rbind(frame, stateRank);
    }}

Как я мог это сделать?Например, как сделать правильный «пустой» вектор для добавления к фрейму данных в «условии if»?

Пример вывода:

функция («сердечный приступ», 40)

  1. Больница 1 Аризона № 40

  2. Больница 7 Техас № 40

  3. Алабама(например, в Алабаме нет больницы 40 ранга, которая бы имела значение сердечного приступа)

Заранее спасибо!

...