(R)如何在数据帧中插入“ NA”值?

时间:2019-02-01 14:47:09

标签: insert row frame

我有以下问题:我有一个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")];

在这里,我想做一个“ NA”行,因为对于给定的状态,指定的num没有值(大于此状态的数据量)。

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

然后,我想用状态值(即心脏病发作死亡率)或状态的“ NA”值更新框架。

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

我该怎么做?例如。如何制作正确的“空”向量以添加到“ if-condition”中的数据帧?

示例输出为:

function(“心脏病发作”,40)

  1. 1号医院在亚利桑那州排名第40

  2. 德克萨斯州第7医院排名第40位

  3. 阿拉巴马州北部(例如,阿拉巴马州没有排名第40的具有心脏病发作价值的医院)

谢谢!

0 个答案:

没有答案