Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 错误在<>;:类型为'的对象;关闭';是不可分的还是不知道怎么修复它_R - Fatal编程技术网

R 错误在<>;:类型为'的对象;关闭';是不可分的还是不知道怎么修复它

R 错误在<>;:类型为'的对象;关闭';是不可分的还是不知道怎么修复它,r,R,我收到一条关于我的代码的错误消息,但我无法找出它。 我搜索了一些问题,但仍然对解决方案感到困惑。 如果您能检查我的代码并帮助我解决这个问题,我将非常感激。 谢谢。 我的代码是: rm(list = ls()) library(XLConnect) setwd('C:/Users/YL1/Desktop/Air Qulaity/Power Plant/ NOx_SO2_Emission') # replace it with your own directory

我收到一条关于我的代码的错误消息,但我无法找出它。 我搜索了一些问题,但仍然对解决方案感到困惑。 如果您能检查我的代码并帮助我解决这个问题,我将非常感激。 谢谢。 我的代码是:

rm(list = ls())
    library(XLConnect)
    setwd('C:/Users/YL1/Desktop/Air Qulaity/Power Plant/
          NOx_SO2_Emission') # replace it with your own directory
    file <- 'C:/Users/YL1/Desktop/Air Qulaity/
        Power Plant/NOx_SO2_Emission/
        Total Emission_2003-2015.xlsx'
    wb <- loadWorkbook(file)
    dt <- lapply(2003:2015, function(x) readWorksheet(wb, sheet = as.character(x)))
    dt <- do.call(rbind, dt)
    colnames(dt) <- c('State', 'Facility.Name', 'Facility.ID.ORISPL', 'Year', 
                      'SO2.tons', 'NOx.tons')

    dt.select.fun <- function(station) {
      dt.select <- dt[dt$Facility.Name == station, ]
      dt.select <- dt.select[order(-dt.select$Year), ]
      write.csv(dt.select, paste0(station, '.csv'))
      return(dt.select)
    }

    # change station to other values to extract the emission in other stations
    dt.select.fun(station = 'Coffeen')


> Error in dt$Facility.Name : object of type 'closure' is not
> subsettable
rm(list=ls())
库(XLConnect)
setwd('C:/Users/YL1/桌面/空调/发电厂/
NOx_SO2_Emission')#将其替换为您自己的目录

文件那可能是因为你的
dt那可能是因为你的
dt谢谢。但问题仍然存在。谢谢更新!这似乎有效,但我得到了新的错误:dt.select.fun中的错误(dt,station=“898”):未使用的参数(dt)。如果您想获得更多详细信息,我可以发送我的代码和数据供您审阅。请留下电子邮件。非常感谢。您需要将参数传递给您的函数
dt.select.fun Hi我按如下方式更改了代码,但仍然收到错误消息:
dt$Facility中的错误。名称:“closure”类型的对象不可子集
Hi,非常感谢。但问题仍然存在。请检查我在下面发布的代码。谢谢。但问题仍然存在。谢谢更新!这似乎有效,但我得到了新的错误:dt.select.fun中的错误(dt,station=“898”):未使用的参数(dt)。如果您想获得更多详细信息,我可以发送我的代码和数据供您审阅。请留下电子邮件。非常感谢。您需要将参数传递给您的函数
dt.select.fun Hi我按如下方式更改了代码,但仍然收到错误消息:
dt$Facility中的错误。名称:“closure”类型的对象不可子集
Hi,非常感谢。但问题仍然存在。请检查我贴在下面的代码。
dt <- do.call(rbind, dt) %>% as.data.table # to make a datatable
dt.select.fun <- function(data,y) {
      dt.select <- data[data$Facility.Name == y, ]
      dt.select <- dt.select[order(-dt.select$Year), ]
      write.csv(dt.select, paste0(station, '.csv'))
      return(dt.select)
    }
# call the function on your data table
 dt.select.fun(dt,"Coffeen")