我有这行代码在“正常”R:
中工作damage <- damage %>% mutate( EVTYPE = ifelse(grepl("winter", EVTYPE,
ignore.case=T), "Winter Weather", EVTYPE))
然而,knitr中完全相同的代码行会导致奇怪的行为。如果grep失败,而不是单独放置EVTYPE的值,而是将其更改为数字。也许是一个指数。
头部R的输出(唯一(损坏$ EVTYPE))是:
[1]“TORNADO”“TSTM WIND”“HAIL”“ICE STORM / FLASH FLOOD”
[5]“冬季天气”“HURRICANO OPAL / HIGH WINDS”
而在knitr中它是:
[1]“407”“423”“134”“239”
[5]“冬季天气”“223”
这是一个错误吗?是否有某种原因预计这不会在knitr中起作用?
答案 0 :(得分:4)
看起来在你的R环境中它是一个角色向量,而在你的编织环境中它是一个因素。您是否忘记在read.table或data.frame上使用stringsAsFactors = FALSE?