问题标签 [sapply]

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 回答
3171 浏览

r - 在 POSIXct 的向量上使用 sapply

我有一个可能很简单的问题。我想从数据框中处理一列 POSIXct 对象并生成一个日期时间字符串向量。我尝试使用以下 sapply 调用

但无济于事。我不断收到以下错误:

当我将此函数应用于列中的单个 POSIXct 对象时,我没有问题。所以我现在很困惑问题是什么。我需要对 POSIXct 对象做一些特别的事情吗?

0 投票
1 回答
1035 浏览

r - POSIXct 和 sapply 的向量

如果你想应用一个函数而不是format一个 POSIXct 对象列表怎么办?例如,假设我想取一个时间向量,将这些时间截断为小时,并对每个时间应用一个任意函数。

现在,我希望长度为obs.truncated3 但

因此,您可以看到尝试apply对该向量执行函数是行不通的。类obs.truncated

知道这里发生了什么吗? apply并且length似乎将向量的第一个元素作为自己的列表。

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完全取代所有这些?

0 投票
6 回答
285292 浏览

r - 将函数应用于矩阵或数据框的每一行

假设我有一个 2 矩阵和一个将 2 向量作为其参数之一的函数。我想将该函数应用于矩阵的每一行并获得一个 n 向量。如何在 R 中做到这一点?

例如,我想计算三个点上的二维标准正态分布的密度:

如何将函数应用于每一行out

如何以您指定的方式将除点之外的其他参数的值传递给函数?

0 投票
2 回答
506 浏览

performance - 如何重写“sapply”命令以提高性能?

我有一个名为“d”的 ~1,300,000 行和 4 列的 data.frame 和另一个名为“gc”的 ~12,000 行和 2 列的 data.frame(但请参见下面的较小示例)。

以下是“d”的样子:

这是“gc”:

我想通过合并“gc”中与“d”的第一列匹配的数据来向“d”添加第 5 列。目前我正在使用sapply

但是在真实数据上,它需要“非常长”的时间(我使用“system.time()”运行命令已经超过 30 分钟,但仍未完成)。

你知道我如何以一种聪明的方式重写它吗?或者我应该考虑使用plyr,也许使用“并行”选项(我的计算机上有四个内核)?在这种情况下,最好的语法是什么?

提前致谢。

0 投票
1 回答
67494 浏览

r - 将函数应用于R中数据框中的每一行

可能重复:
如何将函数应用于 R 中矩阵(或数据框)的每一行

R - 如何使用来自df的每一行的多个参数在每一行数据帧上调用类似apply的函数

我想将一个函数应用于数据框中的每一行,但是,R 默认将它应用于每一列。否则我该如何强制?

我想要类似的东西

0 投票
2 回答
731 浏览

r - 在 sapply 帮助下改进 R 编码

我正在为一些代码而苦苦挣扎。我可以让它非常低效地工作,但认为必须有更好的方法来解决它。我正在尝试从几个不同的变量中编译一个变量。在编码变量中,“跳过”被编码为特定数字(例如“99”下面的示例)。我正在尝试根据其中 10 个变量创建一个总成本变量。

通过这种方式,我制作了效率低下的代码,其工作原理是:

我尝试使用该sapply命令使其更优雅,但没有奏效。我只是想看看是否有人可以就我的代码失败的原因给我一些提示或帮助。我把它放到一个列表环境中(我认为在尝试了其他类似 cbind 之后是正确的)并尝试进行特定的调用,但出现错误。作为示例代码,我设置了以下内容:

问题是当我尝试我的实际代码(或此代码)时,我得到:

显然我做错了什么,但我不确定它是什么。我查看了 ifelse 的帮助文件,但我不明白输出的错误消息。我已经让代码以低效的方式运行,但我真的很想获得一些关于如何改进我未来在 R 中编码的反馈和知识。

谢谢!

0 投票
3 回答
66879 浏览

r - 跨数据框的特定列逐行连接

我有一个带有列的数据框,当将这些列连接(按行)作为字符串时,我可以将数据框划分为所需的形式。

对于每一行,我想将 F、E、D 和 C 列中的数据连接成一个字符串(下划线字符作为分隔符)。以下是我对此的不成功尝试:

下面是不想要的结果:

任何帮助将不胜感激。

0 投票
3 回答
6956 浏览

function - 忽略 sapply 函数中的 NA

我正在使用 R 并四处寻找答案,但是虽然我看到了类似的问题,但它并没有解决我的具体问题。

在我的数据集中,我尝试使用NA's 作为占位符,因为一旦完成部分分析,我将返回它们,因此,我希望能够像NA's一样进行所有计算真的不在那里。

这是我对示例数据表的问题

我收到错误消息:

如你们所知,sapply 函数有问题。关于如何忽略那些NA的任何想法?na.omit如果我能让它在它们之前的位置插入所有' ,我会尝试NA,但我不知道该怎么做。

0 投票
4 回答
6608 浏览

r - 使用“...”和“复制”

在文档中sapply并且replicate有关于使用的警告...

现在,我可以接受它,但想了解它背后的原因。所以我创建了这个人为的小例子:

也许我做了一些明显可怕的错误,但我发现这种结果相当令人沮丧。所以任何人都可以向我解释为什么在上述所有对 的调用中outerfunction,我得到这个输出:

就像我说的:文档似乎对此发出警告,但我不明白为什么会这样。