具有不同参数的get函数的R循环
R loop with get function with different parameter
我从以下 url,
创建数据框
因为我有几个站点,所以我需要为每个站点 运行 这个脚本(例如在附件示例站点 1 和 41 中),然后将它们全部绑定到一个
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 之间的任何内容创建空元素,因此使用 assign 会更简洁,为每个站点创建一个新对象。
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 =',')
)
}
我从以下 url,
创建数据框因为我有几个站点,所以我需要为每个站点 运行 这个脚本(例如在附件示例站点 1 和 41 中),然后将它们全部绑定到一个
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 之间的任何内容创建空元素,因此使用 assign 会更简洁,为每个站点创建一个新对象。
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 =',')
)
}