具有不同参数的 get 函数的 R 循环

标签 r loops assign

我从以下网址创建数据框,

由于我有多个站点,因此我需要为每个站点运行此脚本(例如在附加示例站点 1 和 41 中),然后将所有站点绑定(bind)到一个

LS_Bellaboo_Token <- xxx
url_signature_orders_report <- "https://ran-reporting.rakutenmarketing.com/en/reports/signature-orders-report/filters?include_summary=Y&tz=GMT&date_type=transaction"
from <- Sys.Date()-39
to <- Sys.Date()-1

site <- 1 
LinkShare_Report_1 <-
  read.csv(text=rawToChar(
    GET(url_signature_orders_report,
        query=list(token=LS_Bellaboo_Token,
                   start_date=from,
                   end_date=to,
                   network=site))
    [["content"]]),skip = 4, header = TRUE, sep =',')
if (length(LinkShare_Report_US$X..of.Items)>0 )
{LinkShare_Report_US["site"] <-"US"}

site <- 41 
LinkShare_Report_41 <-
  read.csv(text=rawToChar(
    GET(url_signature_orders_report,
        query=list(token=LS_Bellaboo_Token,
                   start_date=from,
                   end_date=to,
                   network=site))
    [["content"]]),skip = 4, header = TRUE, sep =',')
if (length(LinkShare_Report_US$X..of.Items)>0 )
{LinkShare_Report_US["site"] <-"US"}

我想创建循环,而不是为每个站点重复它们。

我正在尝试以下脚本

site <-c(1,41)
for (i in site){
LinkShare_Report_[i] <-
  read.csv(text=rawToChar(
    GET(url_signature_orders_report,
        query=list(token=LS_Bellaboo_Token,
                   start_date=from,
                   end_date=to,
                   network=site))
    [["content"]]),skip = 4, header = TRUE, sep =',')
}

但这对我不起作用,我是 R 新手

最佳答案

您需要首先创建对象LinkShare_Report_

LinkShare_Report_ <- list()

然后就可以运行了

site <- c(1,41)
for (i in site){
 LinkShare_Report_[i] <-
  read.csv(text=rawToChar(
     GET(url_signature_orders_report,
         query=list(token=LS_Bellaboo_Token,
               start_date=from,
               end_date=to,
               network=i))
[["content"]]),skip = 4, header = TRUE, sep =',')
}

由于列表会为 1 到 41 之间的任何内容创建空元素,因此使用分配会更加简洁,为每个站点创建一个新对象。

site <- c(1,41)
for (i in site){
 assign(paste0('site',i),
  read.csv(text=rawToChar(
     GET(url_signature_orders_report,
         query=list(token=LS_Bellaboo_Token,
               start_date=from,
               end_date=to,
               network=i))
[["content"]]),skip = 4, header = TRUE, sep =',')
)
}

关于具有不同参数的 get 函数的 R 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858928/

相关文章:

r - 在 ggplot 中设置多个绘图的轴

r - R中威 bool 曲线下的阴影分区

r - 如何在 R Shiny 中的同一行上创建带有超链接或其他元素的单行文本?

c - 产生独特的值(value)

angular - 对象在使用 angular4 时不支持属性或方法 'assign' - ie11

r - 过滤功能在 R 中不起作用

c - 与负整数比较时忽略 for 循环条件

r - 如何优化循环 R 的嵌套

r - 如何解决 `fun<-` 从评估 `value` 开始的事实?

matlab - 将元素分配到矩阵的下三角部分