使用 knitr 时出现错误,但在控制台中执行相同命令时没有错误

Error showing up when using knitr but no error when executing the same command in console

我有一份报告需要记录从天气数据库获取的数据。到目前为止,在控制台中执行的每个命令都取得了良好的效果,但是当我尝试使用相同的命令输出一个简单的 HTML 报告时,knitr 遇到了一些奇怪的问题,我觉得这是一个错误,因为这不应该发生.

它基本上涉及对需要替换的某些值使用 gsub() 命令。在通常的命令执行中,我能够通过适当的命令替换所有需要替换的必需内容,但是这些非常相同的命令在编织到 HTML:

时给出了这个错误
Quitting from lines 81-92 (experiment.Rmd) 
Error in `$<-.data.frame`(`*tmp*`, "PROPDMGEXP", value = numeric(0)) : 
replacement has 0 rows, data has 902298
Calls: <Anonymous> ... withVisible -> eval -> eval -> $<- -> $<-.data.frame
Execution halted

我正在使用这个命令:

df$column <- gsub('some content', 'replace', df$column)

真的很简单,但是 knitr 不让我发表报告。如需更多参考,名为 PROPDMGEXP 的列具有我将其替换为数字 (0-2) 的字符值,如下所示:

PROPDMGEXP
K
K
M
NA

我根据数据用 0-2 替换了它们,但为什么 knitr 给我这个错误?

编辑:这是完整的参考代码以防万一:

url <- 'some url'
download.file('url', distil = 'xyz.zip')
unzip('xyz.zip')
read.table(xyz.rds)
xyz$PROPDMGEXP <- gsub('K', '1', xyz$PROPDMGEXP)

当我将相同的代码粘贴到 Rmd 文件并将其编织到 HTML 时,错误发生在最后一行。

谷歌搜索 "PROPDMGEXP" 后,我在 Rpubs 上找到了一份出版物。使用它我找到了数据集并使用 Rmd 文件尝试了以下操作:

library(data.table)
wr <- fread("repdata_data_StormData.csv")
unique(wr$PROPDMGEXP)

##  [1] "K" "M" ""  "B" "m" "+" "0" "5" "6" "?" "4" "2" "3" "h" "7" "H" "-"
## [18] "1" "8"

然后

wr$PROPDMGEXP <- gsub("K", "0", wr$PROPDMGEXP)
unique(wr$PROPDMGEXP)

##  [1] "0" "M" ""  "B" "m" "+" "5" "6" "?" "4" "2" "3" "h" "7" "H" "-" "1" 
## [18] "8"

它似乎工作正常。您能否提供有关您的问题的更多信息?你具体写了什么?