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")