【问题标题】:Error showing up when using knitr but no error when executing the same command in console使用knitr时出现错误,但在控制台中执行相同命令时没有错误
【发布时间】:2015-12-28 09:21:09
【问题描述】:

我有一份报告,需要记录从天气数据库获取的数据。到目前为止,在控制台中执行的每个命令都给出了很好的结果,但是当我尝试用这些相同的命令输出一个简单的 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 时,错误出现在最后一行。

【问题讨论】:

    标签: r dataframe knitr gsub


    【解决方案1】:

    在谷歌搜索“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"
    

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

    【讨论】:

    • 感谢您的回复!我做了你所做的,除了我使用通常的 read.table 命令而不是 fread()。我也能够替换与您相同的内容,将 K 替换为 1 等等,但只能通过通常的程序。但是,当我尝试将相同的代码编织到 HTML 输出时,knitr 会抛出我上面提到的这个错误。
    • 嗨,我上面发布的代码使用 html knitr 执行没有问题。您是否已经使用此包 (knitr) 执行其他任务?你安装了什么包? (我使用 install.packages("rmarkdown"))
    • 谢谢塔尔!这很奇怪。我以前用过knitr,但我发现这个错误很奇怪。虽然我不确定是否安装了“Rmarkdown”包...
    • 希文德拉没问题。假设所有库都已加载,也许它只是某个地方的一个小错字。如果您发布那几行代码以供检查,可以尝试提供更好的帮助。干杯。
    • 那我再补充一些细节。
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多