我正在从 PowerBI REST API 解析数据以获取活动数据。这个 API 函数的方式是——同一个端点今天可能返回 10 个字段的数据,明天它可能返回 15 个字段。我的目标是运行一个计划的过程,该过程将提取每日数据(比如放入 SQL 表中)。我用我需要的列预定义了一个输出数据框。但是我正在寻找一种方法来处理这种情况 - 比如说我在输出数据框中定义了 12 列,并且在今天的 REST API 提取中,结果不包含这 12 列中的 1 列。我想将它们作为 NA (或空字符串)。如何在 R 中做到这一点?下面是我正在使用的代码块:
response<-httr::GET(url=RESTEndPoint,config=httpHeader)
parsedResp<-httr::content(response, "text",encoding = "UTF-
8")%>%jsonlite::fromJSON(flatten = TRUE)
df<-as.data.frame(parsedResp$activityEventEntities)
outputDF<-df %>%
dplyr::select(
LogID='Id'
,CreationTimeD='CreationTime'
,Operation='Operation'
,OrganizationID='OrganizationId'
)
假设解析的响应中缺少“操作”字段,那么这将引发错误:“错误:不能对不存在的列进行子集化。” 因为这就是 dplyr:Select 的工作原理。有没有办法说,当解析的响应中缺少“操作”字段时,将其分配为 NA 并继续循环的下一次迭代
谢谢!