从函数中的另一个列表调用列表有效,但不在R中的函数之外

时间:2017-07-05 11:22:58

标签: r lapply

这是DataCamp的练习,我在这里问这个问题,只是为了理解调用命名列表的行为。

此处的目标是创建一个函数来访问名为$timestamp的列表中的命名对象logs,然后使用lapply并仅从{{1}打印$timestamp }。我不明白为什么在函数内外调用相同命令时R的行为不同。

日志主管看起来像这样:

logs

我们需要访问上面列表中的所有head(logs, 2) [[1]] [[1]]$success [1] TRUE [[1]]$details [[1]]$details$message [1] "check" [[1]]$timestamp [1] "2015-09-14 23:01:07 UTC" [[2]] [[2]]$success [1] TRUE [[2]]$details [[2]]$details$message [1] "all good" [[2]]$timestamp [1] "2015-09-15 00:00:13 UTC" 个对象。为此,必须创建一个函数:

$timestamp

该函数的主体使用get_timestamp = function(x) {return(x[["timestamp"]])} 。我不明白的是,为什么要直接打电话:

x[["timestamp"]]

结果:

logs[["timestamp"]]
get_timestamp(logs)

但是打电话:

NULL

返回所有时间戳,这是整个练习的目标。

lapply(logs, get_timestamp)

感谢您解释此事。

0 个答案:

没有答案