[英]NA/NAN Argument Error in R loop
我是R语言的新手,我希望获得一些帮助。 我有一个带有用户定义函数的R代码,称为Plot_linear_fit,在我运行时没有任何错误。
ReportDateRange <- c("2010-11-01", "2017-01-31")
trendDateRange1 <- c("2015-01-01", "2015-08-31")
trendDateRange2 <- c("2015-01-01", "2016-10-31")
trendDateRange3 <- c("2015-01-01", "2016-06-30")
plotDate1 <- c("2011-01-01")
plotDate2 <- c("2015-01-01")
plotDate3 <- c("2013-01-01")
numoftrends <- 3
TRx.Plot1 <- Plot_linear_fit(Sum.TRx,
trendDateRange1,
plotDate1,
ReportDateRange)
TRx.Plot2 <- Plot_linear_fit(Sum.TRx,
trendDateRange2,
plotDate2,
ReportDateRange)
TRx.Plot3 <- Plot_linear_fit(Sum.TRx,
trendDateRange3,
plotDate3,
ReportDateRange)
我想使用lapply将这些代码放入循环中,但是当我尝试运行它时,却得到了NA / NAN参数
ReportDateRange <- c("2010-11-01", "2017-01-31")
trendDateRange1 <- c("2015-01-01", "2015-08-31")
trendDateRange2 <- c("2015-01-01", "2016-10-31")
trendDateRange3 <- c("2015-01-01", "2016-06-30")
plotDate1 <- c("2011-01-01")
plotDate2 <- c("2015-01-01")
plotDate3 <- c("2013-01-01")
numoftrends <- 3
lapply(1:numoftrends, function(j) {
paste0('TRx.Plot', j) <- Plot_linear_fit(Sum.TRx,
paste0("trendDateRange", j),
paste0("plotDate", j),
ReportDateRange)
})
当您将其放入lapply中时,我不确定是什么问题。 函数Plot_linear_fit的输出是一个数据框。 谢谢您的帮助。
最小的解决方法是(我想是未经测试的代码,因为您没有提供MRE ):
lapply(1:numoftrends, function(j) {
assign(paste0('TRx.Plot', j),
Plot_linear_fit(Sum.TRx,
get(paste0("trendDateRange", j)),
get(paste0("plotDate", j)),
ReportDateRange),
pos = .GlobalEnv)
})
但是,将分配完全放到全局工作区中,然后直接使用列表会更惯用:
list_of_plots <- lapply(1:numoftrends, function(j) {
Plot_linear_fit(Sum.TRx,
get(paste0("trendDateRange", j)),
get(paste0("plotDate", j)),
ReportDateRange)
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.