问题标签 [lapply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
668 浏览

r - 你可以使用 lapply() 函数来改变输入的值吗?

我想知道是否可以使用 lapply() 函数来改变输入的值,类似于:

我正在寻找类似于 for() 循环的东西,但使用 lapply() 基础设施。我无法让 rapply() 做到这一点。

原因是“真正的”a2 函数是一个困难的函数,只有当 a1[i-1] 的值满足某些条件时才需要进行评估。

重新措辞:所以我试图用 lapply() 类型的东西替换下面代码中的 for():

R 邮件列表建议查看 Reduce() 函数....如:

这给出了与 cumprod(a1) 相同的结果......但比循环还要慢:

任何的想法 ?

0 投票
4 回答
6167 浏览

list - 按列表对 data.frame 进行子集,并按行对每个部分应用函数

这似乎是一个典型的plyr问题,但我有不同的想法。这是我要优化的功能(跳过for循环)。

现在是一个简短的演示……实际上,我将解释我主要打算做什么。我想通过对象中data.frame收集的向量对 a 进行子集化。list由于这是心理研究中伴随数据处理的函数代码的一部分,因此您可以将其视为m人格问卷(10 个主题,20 个变量)的结果。列表中的向量包含定义问卷子量表(例如人格特征)的列索引。每个子量表由几个项目(中的列data.frame)定义。如果我们假设每个分量表上的分数只不过sum是行值(或其​​他一些函数)(每个主题的问卷那部分的结果),你可以运行:

我看了一眼这个函数,我必须承认这个小循环根本没有破坏代码......但是,如果有更简单/有效的方法,请告诉我!

0 投票
2 回答
434 浏览

r - 如何创建包含一串星号的列以指示 R 中数据框中某个因子的级别

(今天的第二个问题 - 一定是糟糕的一天)

我有一个包含各种列的数据框,包括浓度列(数字)、突出显示无效结果的标志(布尔值)和问题描述(字符)

我可以使用原因列的数字级别创建一列

这就是我想要创建一个“级别”很多星的列,但它失败了

似乎 rep 需要一次输入一个值。我觉得这应该是可能的(我的直觉说'使用 lapply',但我的应用 fu 是 v. 差)

有人想试试吗?

0 投票
4 回答
25674 浏览

r - 如何告诉 lapply 忽略错误并处理列表中的下一件事?

我在下面有一个示例函数,它将日期作为字符串读取并将其作为日期对象返回。如果它读取一个无法转换为日期的字符串,它会返回一个错误。

现在,我想使用 lapply 并将此函数应用于日期列表:

但是,如果我想在两个好日期中间的一个字符串返回错误时将函数应用于列表,那么处理这个问题的最佳方法是什么?

我想我想在那里尝试捕获,但是有没有办法在要求 lapply 继续并阅读第三个日期的同时捕获“foo”字符串的错误?

0 投票
3 回答
6891 浏览

r - 可以 lapply 不修改更高范围内的变量

我经常想基本上做以下事情:

但是,我希望 mat 里面有 10 个随机数,但它有 0。(我不担心 rnorm 部分。显然有一个正确的方法可以做到这一点。我担心从一个lapply 的匿名函数)我不能从 lapply 内部影响矩阵垫吗?为什么不?R 的范围规则是否阻止了这一点?

0 投票
2 回答
1589 浏览

r - 问题。在 data.frame 上使用 lappy 并创建带有输出的新变量

我在 data.frame 中有 13 个定量变量(称为“UNCA”)。

这些变量被命名为 q01_a、q01_b、...q01_m。

我想创建 13 个具有相同值但被编码为因子的新变量。

我想将这 13 个新变量命名为 q01_a.F、q01_b.F、...q01_m.F。

任何帮助将不胜感激!

0 投票
2 回答
595 浏览

r - 如何替换R中的列?日期的奇怪行为

我正在尝试将不常见的日期格式转换为标准日期。基本上我有一个数据集,其中包含一个半年频率的周期,格式如下:206 表示 2006 年下半年,106 表示上半年,依此类推。为了将其重新排列为 2006-06-01 和 2006-01-01,我编写了一个小函数:

你现在可以笑了:)。无论如何,该功能有效,问题就来了。我想将此函数应用于 data.frame 的时间列。我尝试了以下方法:

返回的结果最接近我想要的结果:structure.13665..class..Date.. 1 2006-06-01

等等.. 显然我很想保留我的专栏名称——或者甚至更好地将新格式化的日期添加到我原来的 df 中。另外我试过:

[1] 13300 13514 13665

我要做的就是将不常见的 206 等格式更改为 2006-06-01 (有效)并向 mydf 添加一列(无效)

thx 提前提出任何建议!

0 投票
1 回答
198 浏览

testing - R:创建 lapply() 类型的测试用例

我一直在编写代码来创建一个并行的 lapply() 类型函数,该函数使用 Amazon 的 Elastic Map Reduce 引擎作为处理的“网格”(是的,它是一个没有减速器的映射器)。在我得到稳定的代码后,我会将它抽象为一个 foreach 后端。但首先我需要构建测试来测试我拥有的代码。

这个函数有什么好的测试用例?

我现在的规范测试用例如下:

这个测试用例确保可选参数na.rm=T正确地传递给远程机器。我可以使用哪些其他测试用例?我目前不支持simplifyUSE.NAMES争论,尽管我会在未来。

0 投票
5 回答
67030 浏览

r - 你如何将多个 .txt 文件读入 R?

我正在使用 R 来可视化一些数据,所有这些数据都是 .txt 格式的。一个目录中有几百个文件,我想一次性将它们全部加载到一个表中。

有什么帮助吗?

编辑:

列出文件不是问题。但是我在从列表到内容时遇到了麻烦。我已经尝试了这里的一些代码,但是这部分有一个错误:

任何能澄清这个问题的代码片段都将不胜感激。

0 投票
10 回答
424326 浏览

r - 分组函数(tapply、by、aggregate)和 *apply 系列

每当我想在 R 中做一些“map”py 的事情时,我通常会尝试使用apply家族中的一个函数。

但是,我从来没有完全理解它们之间的区别—— { sapply, lapply, etc.} 如何将函数应用于输入/分组输入,输出看起来像什么,甚至输入可以是什么——所以我经常只是通过它们,直到我得到我想要的。

有人可以解释如何在什么时候使用哪一个吗?

我目前(可能不正确/不完整)的理解是......

  1. sapply(vec, f): 输入是一个向量。output 是一个向量/矩阵,其中 elementi是,如果有一个多元素输出,则f(vec[i])给你一个矩阵f

  2. lapply(vec, f): 和 一样sapply,但是输出是一个列表?

  3. apply(matrix, 1/2, f): 输入是一个矩阵。输出是一个向量,其中元素i是 f(矩阵的行/列 i)
  4. tapply(vector, grouping, f):输出是矩阵/数组,其中矩阵/数组中的元素是向量f分组的值,并被推送到行/列名称gg
  5. by(dataframe, grouping, f): 让我们g成为一个分组。适用f于组/数据框的每一列。漂亮地打印每列的分组和值f
  6. aggregate(matrix, grouping, f): 类似于by,但不是漂亮地打印输出,而是聚合将所有内容粘贴到数据框中。

附带问题:我还没有学习 plyr 或 reshape - 会plyrreshape完全取代所有这些?