我有以下问题:我有一个for循环,该循环遍历“州”列表(即美国州)。此for循环是采用“ num”参数的函数的一部分。在数据框中,我想存储一些格式为“名称”“状态”的结果数据。
但是,当列表中“状态”内的参数数量少于指定的“ num”时,则数据框中将无法存储任何值。
这样,我然后要向框架中添加数据的“空”行,以向用户提供“ NA”值,这意味着特定状态不满足“ num”的要求。
我该怎么做?行的标准格式是因子值。
我试图用例如c(“ Name”,“ State”)并使用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")];
if (num > length(stateSet[,1]) {
stateRank <- c(stateList[i], "NA");
frame <- rbind(frame, stateRank);
}
frame <- rbind(frame, stateRank);
}}
我该怎么做?例如。如何制作正确的“空”向量以添加到“ if-condition”中的数据帧?
示例输出为:
function(“心脏病发作”,40)
1号医院在亚利桑那州排名第40
德克萨斯州第7医院排名第40位
阿拉巴马州北部(例如,阿拉巴马州没有排名第40的具有心脏病发作价值的医院)
谢谢!