我试图从列表中获取嵌套元素。我可以使用unlist(pull_lists[[i]]$content[[n]]['sha'])
提取元素,但是,我似乎无法将它们插入到嵌套列表中。我在gist中提取了列表中的单个元素,这将在下面创建可重现的示例。以下是我到目前为止的情况:
library("devtools")
pull_lists <- list(source_gist("669dfeccad88cd4348f7"))
sha_list <- list()
for (i in length(pull_lists)){
for (n in length(pull_lists[[i]]$content)){
sha_list[i][n] <- unlist(pull_lists[[i]]$content[[n]]['sha'])
}
}
如何以嵌套方式插入元素?
答案 0 :(得分:1)
当我下载内容时,我得到的结构比你复杂得多。对我而言,它不是pull_lists[[i]]$content
,而是pull_lists[[i]]$value$content[[1 or 2]]$parents$sha
。没有任何东西填充的原因是因为没有任何东西可以填充(即,n = 0)。
之前我必须处理类似的数据结构。我发现在未列出之后搜索命名结构要容易得多,而不是找出正确的子集序列。
以下是一个例子:
sha_locations <- grep("sha$",names(unlist(pull_list[[1]])))
unlist(pull_list[[1]])[sha_locations]
稍微清理for循环,这看起来像:
sha_list <- lapply(
pull_list,
function(x) unlist(x)[grep("sha$",names(unlist(x)))]
)
由于存在多个SHA,并且该问题仅询问特定位置的SHA,因此需要提取这些SHA:
sha_list <- sha_list[[1]][attr(sha_list[[1]], "names")=="value.content.sha"]