每次我从附加到Google表单的Google App脚本运行以下代码时,我都会不断得到不同的结果:
library(dplyr)
# add a column with the name of the taxonomy
taxo.spA$tax <- "taxo.spA"
taxo.spB$tax <- "taxo.spB"
# bind the rows together (an alternative to do.call(rbind, .) would be data.table::rbindlist())
# this would also work if you have more than two taxonomies
result <- list(taxo.spA, taxo.spB) %>%
do.call(rbind, .) %>%
reshape2::dcast(tax ~ rank, value.var = "name")
# choose the columns and the order you want
orderd_classes <- c("Kingdom", "Phylum", "Subphylum", "Superclass", "Class", "Subclass", "Order")
result[orderd_classes]
在每次运行脚本时,返回的日历事件是在上一次运行脚本时返回的事件之后的下一个日历事件!有什么方法可以重置会话,以便# Kingdom Phylum Subphylum Superclass Class Subclass Order
# Animalia Arthropoda Chelicerata <NA> Arachnida Acari <NA>
# Animalia Chordata Vertebrata Gnathostomata Actinopterygii <NA> Perciformes
总是引用 var calendarId = 'a_valid_calendar_ID';
var eventTime = '2019-03-05T07:00:00.000Z';
var results = Calendar.Events.list(calendarId, {'singleEvents': true, 'timeMin': eventTime, 'maxResults': 1});
Logger.log(JSON.stringify(results, null, 4))
或之后的第一个日历事件?
答案 0 :(得分:0)
您必须添加orderBy
选项,否则返回的事件是在timeMin
或之后具有开始时间的事件,但该事件是最早的进行修改。因此,代码应为:
var calendarId = 'a_valid_calendar_ID';
var eventTime = '2019-03-05T07:00:00.000Z';
var optionalArgs = {'singleEvents': true, 'timeMin': eventTime, 'maxResults': 1, 'orderBy': 'startTime'};
var results = Calendar.Events.list(calendarId, optionalArgs);
Logger.log(JSON.stringify(results, null, 4))
当我发现返回的JSON具有一个nextPageToken
字段(尽管我只想要一个结果-'maxResults': 1
每次运行自己的代码都会得到不同的结果的原因是,我将使用事件的id
来修改该事件。如果然后我使用完全相同的参数运行相同的代码,则已编辑事件不再是最早的timeMin
之后使用startTime进行编辑的事件,因此,在该事件之后我将得到下一个事件!>
此API的行为有点违反直觉,可以通过以下方法进行改进:
{'singleEvents': true, 'orderBy': 'startTime'}
maxResults
选项的名称更改为maxResultsPerPage
,以明确显示max
所指的内容同时,应该对文档进行编辑以引起人们对这种无法预测的行为的注意。