我的报告需要记录从天气数据库中获取的数据。到目前为止,在控制台中执行的每个命令都给出了很好的结果,但是当我尝试使用相同的命令输出一个简单的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)
它非常简单,但编织者不会让我发表报告。为了更多参考,名为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时,错误发生在最后一行。
答案 0 :(得分:0)
在使用Google搜索“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"
似乎工作正常。您可以提供有关您问题的更多信息吗?你究竟写了什么?