У меня следующая проблема: у меня есть цикл 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 Аризона № 40
Больница 7 Техас № 40
Алабама(например, в Алабаме нет больницы 40 ранга, которая бы имела значение сердечного приступа)
Заранее спасибо!