gpt4 book ai didi

r unlist 函数意外结果

转载 作者:行者123 更新时间:2023-12-02 04:43:21 26 4
gpt4 key购买 nike

试图将列表展平为向量我刚刚发现了一个意外的行为。为了简化让我们做什么?unlist建议作为一个例子:

unlist(options())

查看原始列表大小:
length(unlist(options())) # 69 in my environment

未列出的列表是否应该保留其长度?我会这么认为,但是...
length(unlist(options())) # 79!!!
length(unlist(options(), use.names = F)) # Another 79

怎么了?我需要保留列表值但 unlist()给我一个额外的。

最佳答案

这是因为某些列表元素可能具有多个值。因此,unlist正在做它被要求做的事情。

看看下面的例子:

L <- list(1, c(1, 2, 3), 1, c(4, 5))
length(L) # 4 <<< How many list elements are there?
length(unlist(L)) # 7 <<< How many elements are there within the list?
lengths(L) # 1 3 1 2 <<< How many elements are in each list element?
sum(lengths(L)) # 7 <<< How many elements should we expect from unlist?

如果您只期望每个值的第一个值,则可以使用以下内容单独提取该值:
sapply(L, `[[`, 1)
# [1] 1 1 1 4

(这是一个等于列表长度的向量,但缺少大量数据)。

关于r unlist 函数意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com