gpt4 book ai didi

r - 用空向量填充列表会导致其长度发生变化

转载 作者:行者123 更新时间:2023-12-04 14:26:06 25 4
gpt4 key购买 nike

在下面的代码中,我期望长度为 96,但我得到一个长度为 48 的列表。你能解释一下这个结果吗?

num_empty = 96
empty_vecs = as.list(1:num_empty)
for(i in 1:num_empty){empty_vecs[[i]] = c()}
length(empty_vecs)

[1] 48

现在我将回答导致我遇到这种行为的问题。最初的问题是,“如何在 R 中创建空向量列表?”答案是“将上述代码中的 c() 替换为 character()。”

最佳答案

设置列表元素等于 c() (又名 NULL )删除它们,因此此循环具有删除列表中所有其他元素的效果。要看到这一点,请考虑一个较小的示例,迭代打印出结果向量:

e <- list(1, 2, 3, 4)
e
# [[1]]
# [1] 1
#
# [[2]]
# [1] 2
#
# [[3]]
# [1] 3
#
# [[4]]
# [1] 4
#
e[[1]] <- c()
e
# [[1]]
# [1] 2
#
# [[2]]
# [1] 3
#
# [[3]]
# [1] 4
#
e[[2]] <- c()
e
# [[1]]
# [1] 2
#
# [[2]]
# [1] 4

e[[3]] <- c()
e
# [[1]]
# [1] 2
#
# [[2]]
# [1] 4

e[[4]] <- c()
e
# [[1]]
# [1] 2
#
# [[2]]
# [1] 4

请注意,如果您确实想创建一个包含 96 个 NULL 值的列表,您可以尝试:
replicate(96, c(), FALSE)

关于r - 用空向量填充列表会导致其长度发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490394/

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