r-使用编织器时出现错误,但在控制台中执行相同命令时没有错误



我有一份报告,需要写下从天气数据库中获取的数据。到目前为止,在控制台中执行的每一个命令都给出了很好的结果,但当我试图用同样的命令输出一个简单的HTML报告时,我对knifer遇到了一些奇怪的问题,我觉得这是一个错误,因为这不应该发生。

它主要涉及对某些需要替换的值使用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)

这真的很简单,但编织者不让我发表报告。为了获得更多参考,一个名为PROPDMGEXP的列有字符值,我用数字(0-2)替换了它们,如下所示:

PROPDMGEXP
K
K
M
NA

根据数据,我用0-2代替了他们,但为什么针织者在这方面给了我错误?

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

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时,错误出现在最后一行。

在谷歌搜索"PROPDMGXP"后,我在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"

它似乎运行良好。你能提供更多关于你的问题的信息吗?你到底写了什么?

最新更新