rbind在循环中不能正常工作

时间:2015-10-25 22:14:40

标签: r dataframe rbind

当我在R提示符下运行此代码时,它工作正常;我在df_frame中观察到了5个变量。

st <- "AK"
df_frame <- data.frame(hospital=factor(),
        state=factor(),rank=numeric(),ties=numeric(),
        outcome=numeric())
temp <- data.frame(list(hospital="<NA>",
           state=st,rank=0,ties=0,outcome=0))
df_frame <- rbind(df_frame,temp)

当我在循环中使用相同的代码时,我循环遍历状态列表:

for (st in states)  { 
  if (st %in% ranked_states) { 
       states_lst <- which(hosp_state == st) 
       df_frame <- rbind(df_frame, df_outcome[states_lst,]) 
       # Handle ties here 
  } else { 
    #df_frame[nrow(df_frame)+1,] <- c("<NA>",state,0,0,0) 
    #df_frame <- rbind(df_frame,
    #   c(as.character("<NA>"),as.character(state),0,0,0)) 
    temp <- data.frame(list(hospital="<NA>",
      state=st,rank=0,ties=0,outcome=0)) 
    df_frame <- rbind(df_frame,temp) 
  } 
} 

我有这些警告:

    1: In `[<-.factor`(`*tmp*`, ri, value = "<NA>") :
      invalid factor level, NA generated
    2: In `[<-.factor`(`*tmp*`, ri, value = "AK") :
      invalid factor level, NA generated

无论factorstringsAsFactors=FALSE的神奇组合如何,它都无法发挥作用。

1 个答案:

答案 0 :(得分:0)

我收到了同样的错误。经过多次尝试,我的问题是其中一个data.frame,不仅仅是data.frame。

<强>类(your_dataframe)

结果: "grouped_df" "tbl_df" "tbl" "data.frame"

我解决了your_dataframe <- as.data.frame(your_dataframe)

P.S:仅在Ubuntu

中的Windows plataform上没有必要