0
當我在R提示符下運行此代碼時,它工作正常;我在df_frame
中有1個觀察5個變量。rbind在循環中無法正常工作
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
無論神奇組合factor
和stringsAsFactors=FALSE
,它不起作用。
小*重複性*例子會有所幫助... –
設置'option(stringsAsFactors = FALSE)'會是最簡單的。你不能只將因素變量與不同層次結合起來。這會像綁定'性別'和'狀態' - r警告你,他們不兼容 – rawr
@hfty 這裏是一個循環的例子 ' df_frame <-data.frame(hospital = factor(),state =因子()) 爲(ST中的狀態) { 如果在%ranked_states(ST%) { #這工作正常 \t \t states_lst < - 其中(hosp_state == ST) df_frame < - rbind(df_frame ,\t df_outcome [states_lst,]) } else { \t \t#在循環中使用時,這種替代和ST NA通過 \t \t#上的提示,它工作正常 溫度< - data.frame(名單(醫院= 「」,狀態= ST,排名= 0,領帶= 0,結果= 0)) df_frame < - rbind(df_frame,temp) } } @ –
physnoct