如果ELSE可以在R中使用mutate,为什么不能在knitr中使用?

如果ELSE可以在R中使用mutate,为什么不能在knitr中使用?,r,knitr,dplyr,R,Knitr,Dplyr,我有这行代码在“正常”R中工作: 伤害%变异(EVTYPE=ifelse(grepl(“冬季”),EVTYPE, 忽略。案例=T),“冬季天气”,EVTYPE) 然而,knitr中完全相同的代码行会导致奇怪的行为。如果grep失败,EVTYPE的值将被单独保留,而改为一个数字。也许是索引 磁头R中的输出(唯一(损坏$EVTYPE))为: [1] “龙卷风”“TSTM风”“冰雹”“冰暴/山洪暴发” [5] “冬季天气”“飓风蛋白石/大风” 而在knitr中: [1] “407”“423”“134

我有这行代码在“正常”R中工作:

伤害%变异(EVTYPE=ifelse(grepl(“冬季”),EVTYPE,
忽略。案例=T),“冬季天气”,EVTYPE)
然而,knitr中完全相同的代码行会导致奇怪的行为。如果grep失败,EVTYPE的值将被单独保留,而改为一个数字。也许是索引

磁头R中的输出(唯一(损坏$EVTYPE))为:

[1] “龙卷风”“TSTM风”“冰雹”“冰暴/山洪暴发”
[5] “冬季天气”“飓风蛋白石/大风”

而在knitr中:

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


这是虫子吗?在knitr环境中,这是一个字符向量,而在knitr环境中,这是一个因素。这是不是有什么原因不能在knitr环境中起作用。您是否忘记在read.table或data.frame上使用StringsAsAffactors=FALSE?

在R环境中,它是一个字符向量,而在knitr环境中,它是一个因子。您是否忘记在read.table或data.frame上使用StringsAsAffactors=FALSE?

在R环境中,它是一个字符向量,而在knitr环境中,它是一个因子。您是否忘记在read.table或data.frame上使用
stringsAsFactors=FALSE
?就是这样!非常感谢你。如果这是原始上下文中的整行代码(我知道它可能会从原始上下文中修改),为什么还要麻烦使用
%%>%%
damage@BenBolker或更短(如果使用magrittr)
damage%%mutate(EVTYPE=…)
在R环境中,它看起来像是一个字符向量,而在knitr环境中,它是一个因子。您是否忘记在read.table或data.frame上使用
stringsAsFactors=FALSE
?就是这样!非常感谢你。如果这是原始上下文中的整行代码(我知道它可能会从原始上下文中修改),为什么还要麻烦使用
%%>%%
damage@BenBolker或更短(如果使用magrittr)
damage%%mutate(EVTYPE=…)
damage <- damage %>% mutate( EVTYPE = ifelse(grepl("winter", EVTYPE,
    ignore.case=T), "Winter Weather", EVTYPE))