繁体   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