簡體   English   中英

ifelse在R中使用mutate,為什么不在knitr中使用?

[英]ifelse works with mutate in R, why not in knitr?

我有這行代碼在“普通” R中工作:

damage <- damage %>% mutate( EVTYPE = ifelse(grepl("winter", EVTYPE,
    ignore.case=T), "Winter Weather", EVTYPE))

但是,knitr中完全相同的代碼行會導致奇怪的行為。 如果grep失敗,則不會單獨保留EVTYPE的值,而是改為將其更改為數字。 也許是一個索引。

head(unique(damage $ EVTYPE))在R中的輸出為:

[1]“ TORNADO”“ TSTM WIND”“ HAIL”“ ICE STORM / FLASH FLOOD”
[5]“冬季天氣”“颶風蛋白石/高風”

而在針織衫中是:

[1]“ 407”“ 423”“ 134”“ 239”
[5]“冬季天氣”“ 223”

這是錯誤嗎? 是否有某些原因不能預期此功能在knitr中起作用?

看起來在您的R環境中,它是一個字符向量,而在針織機環境中,這是一個因素。 您是否忘記在read.table或data.frame上使用stringsAsFactors = FALSE?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM