[英]invalid factor level, NA generated
初學者在這里。
我正在嘗試將行添加到現有數據框。 我制作了一個新的向量(如下),然后嘗試將其綁定到原始數據幀。 收到一些警告消息。
#append new row
new_row <- c(50, 22, "Roberto", "Bolano", "MALE", "2003-07-15")
#bind to original data frame
writers_df_large <- rbind(writers_df, new_row)
警告消息:1:在[<-.factor
( *tmp*
,ri,value =“ Roberto”)中:無效的因子水平,生成了NA
2:在[<-.factor
( *tmp*
,ri,value =“ Bolano”)中:無效的因子水平,生成了NA
3:在[<-.factor
( *tmp*
,ri,value =“ 2003-07-15”)中:無效的因子級別,生成了NA
StringsAsFactors = FALSE
應該可以解決此問題,但是我不確定該如何解決。
剛開始使用角色時,可能會減輕您的壓力,之后再放松自己的工作范圍(可能會令人沮喪)。 因此,首先,強制所有因子列以
writers_df_large[] <- lapply(writers_df_large, function(x) {
if(is.factor(x)) as.character(x) else x
})
要么
v <- vapply(writers_df_large, is.factor, NA)
writers_df_large[v] <- lapply(writers_df_large[v], as.character)
其次,為新行使用一個列表 ,因為使用c()
會將所有值強制轉換為字符。
new_row <- list(50, 22, "Roberto", "Bolano", "MALE", "2003-07-15")
現在,您可以使用rbind()
添加新行
rbind(writers_df_large, new_row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.