【发布时间】:2018-04-06 03:48:09
【问题描述】:
我有
typeof(A)
>"list"
typeof(A[1])
>"list"
typeof(A[[1]])
>"double"
当我跑步时
A=lapply(A,unlist)
typeof(A[1])
>"list"
结果似乎是一样的。然而,如果我跑了
B=unlist(A[1])
typeof(B)
"double"
请帮助我理解这种行为。为什么两者有区别? lapply 不应该将该函数应用于列表的每个元素吗?比 A[i] 应该像 B 吗?
【问题讨论】:
-
如果
A是一个列表,那么A[1] 将自动成为一个列表。这并不意味着您正在处理列表列表。另一方面,如果typeof(A[[1]])返回“列表”,那么我们会。函数lapply应该被认为是A[[i]]的循环,其中i是1:length(A)的范围。注意:我没有说完A[i]。 -
@42- 我明白了,如果 A 是一个列表,那么 A[i] 总是一个列表......我不知道这一点。所以我其实没有列表列表,而是向量列表?您能否详细说明为什么 A[i] 总是一个列表?如果你愿意,我会接受你的回答。谢谢
-
应用于列表的“[”函数总是返回一个子列表。子列表仍然是列表。如果长度 A == 1 则 A[1] == A 以丢失属性的可能性为模,并以
==运算符不接受这些作为参数的事实为模。
标签: r