在R中调试返回NA的函数

索拉梅罗斯

我正在尝试编写一个函数,该函数从给定目录中的不同文件中读取一些污染数据,每个文件对应于监视器的记录,并返回作为该函数的输入参数给出的一种污染物的平均值。

数据如下所示:

在此处输入图片说明

pollutantmean <- function(directory, pollutant, ID){
        pmean <- 0
        for (monitor in ID){
                filename <- paste("./W2/", directory,"/", monitor,'.csv', sep = "")
                print(filename)
                pollution <- read.csv(file = filename, header = TRUE, sep = ",")
                class(pollution)
                head(pollution, n = 3)
                pmean <- pmean + mean(pollution$pollutant, na.rm = TRUE)
        }
        return(pmean)
}

要运行我设置的功能:

pollutantmean("specdata", "sulfate", 110:112)

我收到以下输出和错误消息:

[1] "./W2/specdata/110.csv"
[1] NA
Warning message:
In mean.default(pollution$pollutant, na.rm = TRUE) :
  argument is not numeric or logical: returning NA 

我的问题是:

  1. 如何逐行运行代码,以便查看函数中局部变量的值如何变化?我抬头看了YouTube,但找不到相关的视频。
  2. 当我复制粘贴并在控制台中的函数中运行每一行代码时,我看到数据已正确存储在污染data.frame中。为什么在控制台中看不到data.frame的类和标题打印为输出?相反,我只能得到与pmean有关的NA。
  3. 如何解决与此错误消息相关的错误?
亚当·桑普森

好问题。如果使用的是RStudio,则可以使用browser()命令将程序冻结在某个位置,以便可以查看环境。

请注意,它将在您每次敲击时停止,browser()因此您可能需要在运行警告之前放入if语句来检测警告。并且,一旦完成,别忘了删除语句。

pollutantmean <- function(directory, pollutant, ID){
  pmean <- 0
  for (monitor in ID){
    filename <- paste("./W2/", directory,"/", monitor,'.csv', sep = "")
    print(filename)
    pollution <- read.csv(file = filename, header = TRUE, sep = ",")
    class(pollution)
    head(pollution, n = 3)
    pmean <- pmean + mean(pollution$pollutant, na.rm = TRUE)
    # Stop here and view the current environment
    browser()
  }
  return(pmean)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R返回NA中的strptime

来自分类Dev

R返回NA中的strptime

来自分类Dev

R-如何结束函数并返回NA?

来自分类Dev

R-如何结束函数并返回NA?

来自分类Dev

由roxofun()函数R返回的NA

来自分类Dev

在R中,我可以使table()函数返回命名元素中NA值的数量吗?

来自分类Dev

在dotNetRDF中调试sparql函数返回值

来自分类Dev

在R中返回函数的函数

来自分类Dev

调试和更改程序包中的R函数

来自分类Dev

调试和更改软件包中的R函数

来自分类Dev

R中的聚合函数(处理NA)

来自分类Dev

循环函数在R中返回什么值

来自分类Dev

R中的积分函数返回错误

来自分类Dev

R中的复制函数返回NULL

来自分类Dev

R中的日期函数返回错误的年份

来自分类Dev

R中的函数返回值

来自分类Dev

R中的传递和返回函数

来自分类Dev

R中返回的函数-绑定何时发生?

来自分类Dev

从R中的函数返回值

来自分类Dev

R中For循环中的返回函数

来自分类Dev

在调试器中评估具有多个返回值的函数

来自分类Dev

如何在gdb / lldb调试中打印模板成员函数返回的值

来自分类Dev

调试/检查函数中的值

来自分类Dev

调试器不会从调用函数返回到被调用函数

来自分类Dev

返回在 R 中的函数中创建的 data.frames 列表

来自分类Dev

参数不是数字或逻辑:在R中返回NA

来自分类Dev

跳过迭代并在嵌套的R中返回NA

来自分类Dev

为什么as.integer在R中返回NA?

来自分类Dev

从R函数返回图