【问题标题】:R: calling function on multiple list entriesR:在多个列表条目上调用函数
【发布时间】:2013-09-05 04:31:45
【问题描述】:

我真的是 R 新手,但有计算机科学背景。我目前正在尝试读取一堆不同的数据文件,然后对它们中的每一个进行一些分析(相同)。

现在,我有一个数据集列表。所以,我的第一个数据集在列表 [[1]] 中,第二个在列表 [[2]] 中,等等。所以,我要做的是循环列表的长度并调用一些函数从两个列到每个唯一数据集的该函数中。然而,我正在阅读一篇关于此的文章,并发现:

foo = seq(1, 100, by=2)
foo.squared = NULL
foo.squared = foo^2

将 foo 中的所有值平方。那么,有什么方法可以为我的情况做类似的事情吗?例如,从列表中的所有数据集中传递值或其他什么?

为了更具体,我有一个名为 data_list 的数据集列表,每个数据集与 a、b 和 c 列相同。我需要使用数据集中的参数 a 和 b 调用函数 f。除了使用for循环还有什么办法吗?

请让我知道这是否有意义。抱歉有任何混淆,就像我说的,我对这种语言很陌生。感谢您的帮助!

【问题讨论】:

  • ?lapply 是你所追求的
  • 您的代码中不需要foo.squared = NULL
  • 一般来说 - 不,您需要循环 - 使用 forapply 系列函数之一,但对于特定函数,通常会有一个快捷方式,所以如果您想要好的答案 - 请具体说明。

标签: r optimization for-loop


【解决方案1】:

使用这个:

lapply(data_list, function(x) f(x$a, x$b))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2022-01-18
    • 2017-03-10
    相关资源
    最近更新 更多