【问题标题】:Logical comparison of elements from named list vs named vector in RR中命名列表元素与命名向量的逻辑比较
【发布时间】:2021-10-21 04:34:05
【问题描述】:

对不起,如果这是重复的,我阅读了许多线程,但找不到一个好的解释。

我有一个数据集(数据框),我在其中计算了每列的平均值。我现在想在这些值之间进行一些逻辑比较。我使用lapply 来获取手段

means_list <- lapply(dataset_df, mean)

输出一个命名列表。但是当我尝试比较这个列表的两个元素时,例如

means_list["condition1"] > means_list["condition2"]

我收到一个错误(“未实现这些类型的比较”)。

如果我使用 sapply 代替,我不会收到该错误,以便我使用命名向量。我还可以通过先将列表转换为带有as.data.frame 的数据框来解决该错误。

所以,在这里对命名列表进行子集化时,我觉得我做错了,但我不太明白怎么做。是否有正确的方法来对列表进行子集化以便我可以进行逻辑比较?或者这对于命名列表是不可能的?

谢谢!

【问题讨论】:

  • 谢谢,这解释得很好。有点棘手的是,只有列表才真正需要双括号。我已经可以说,我将来可能会忘记这样做。

标签: r subset logical-operators


【解决方案1】:

要通过名称访问列表元素,您必须使用双括号:

means_list[["condition1"]] > means_list[["condition2"]]

【讨论】:

  • 非常感谢您的快速回复!我现在去查一下[ ][[ ]]之间的区别!
猜你喜欢
  • 2016-12-03
  • 2022-07-01
  • 2014-08-14
  • 2019-12-14
  • 2016-04-03
  • 2021-05-17
  • 2016-11-17
  • 2018-04-08
  • 1970-01-01
相关资源
最近更新 更多