问题标签 [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 投票
2 回答
493 浏览

r - apply-strsplit-rowwise 包括排序和嵌套粘贴

我想我只是没有看到它,但我在网上、邮件列表档案或常见问题解答中找到的所有类似内容都无法真正阐明我的问题。

我发现的最接近的是: apply strsplit rowwise

我有一个 df,有两个字符列和一个数字列。像这样填充:

现在我想在其中找到唯一的行,但是,仅基于两个名称列。duplicated对于那些列,列的顺序没有意义,因此如果我理解正确,我不能使用。

所以我考虑将两个名称列逐行组合,进行逐行排序,并打印出paste向量的 a (长度 = 2 与类似的组合sapply)。

但是我没有让它工作。

到目前为止,我使用了一个 for 循环,但这需要很长时间才能处理原始数据。

欢迎任何建议。也许我只是理解uniquesapply错误的方式。

0 投票
1 回答
16295 浏览

r - 提取列表中每个元素的第二个子元素,同时忽略 R 中 sapply 中的 NA

我试图提取列表中每个元素的第二个子元素,同时忽略 R 中的 NA。这是一个小例子:

因为元素“b”只有一个子元素 (NA),所以在尝试提取第二个子元素时收到以下错误:

我的目标是输出为:7,NA,9。换句话说,我想忽略并保留 NA,以便输出与 list 中元素的数量相同。我希望解决方案足够通用,以便能够将其应用于每个列表中的不同子元素 n。

0 投票
1 回答
129 浏览

r - 将长格式数据转换为宽格式(尝试使用 for 循环)我可以使用 sapply 吗?

我在设置sapply. 我确实有一个 for 循环可以完成我需要的工作,但是完成它需要很长时间。

变量名解释:

df 的列名:用户 ID、项目 ID 1、项目 ID 2、...、项目 ID n

我正在尝试创建一个二进制表,指示用户拥有哪个项目。
例子:

原始数据如下所示:

我拥有的 for 循环是:

我将如何使用它来转换它sapply?(或任何其他应用功能)

谢谢!

ps 如果有更好的方法来执行这个任务,请告诉我!我正在尝试学习更有效的方法在 R 中做事。

0 投票
1 回答
344 浏览

r - 数据拆分和应用

我是这R门语言的新手,我很难计算每个Identification.

我有一个非常大的每月观察数据集,按如下方式分组:

我需要编写一个函数来计算每个Identification. 然后,我需要汇总在“子集”的上层计算的值(平均加权“%”)。

我以这种方式将向量的格式更改为timesyear-month%Y-%m”: as.yearmon(as.character(Data$Times), format = "%Y%m")

我试图计算每次Identification使用splitand的回报sapply,如下所示: xm <- split(Data, Identification) Retxm <- sapply(1:length(xm), function(x) returns(Value))

我使用上面的函数得到的输出是这样的:

输出不是很清楚,所以我会在 Times 的行和标题上的Identification.

太感谢了!

0 投票
3 回答
116 浏览

r - sapply() with with vector of values instead of 1:n

I would like to have an sapply() statement of the following form:

Normally instead of c(a) I would have 1:x, however now I would like to go through only the values specified in a. Is this possible?

Update: The point is not what goes after function(x) - that is only intended as an example.

0 投票
2 回答
124 浏览

r - 展开函数并用 deriv 计算导数

这是我想扩展和派生的函数的乳胶代码:

$f(x) = \sum\limits_{i=1}^n \left(x_i + \frac{h}{2}(1-ih)\sum\limits_{j=1}^i jh(x_j + jh +1)^3 + \frac{h}{2}ih\sum\limits_{j=i+1}^n (1-jh)(x_j+jh+1)^3 \right)^2$

在此处输入图像描述

我计划n=6通过deriv(expression(myfunction),c('x1', 'x2','x3','x4','x5','x6')). 我不知道如何在不扩展函数的情况下计算导数,但如果有办法请告诉我。

我的问题始于尝试仅在一个字符串中扩展函数时,因为部分表达式会重复,因此将不胜感激:

0 投票
1 回答
1136 浏览

r - 从 data.frame 和二进制矩阵创建子集的优雅方式

我有一个包含价格和材料列的数据框,以及一个包含 N 列的真/假矩阵(每列是一种特定类型的材料),并且 T/F 值表示“材料”字符串是否出现在数据矩阵中

数据

矩阵

...ETC。

如何根据材料创建价格子集?所以我可以计算具有“金属”材料的价格的平均值、范围模式等。

我最初的解决方案是将

然后在 newMat 上执行列操作(平均值、分位数等)

但这似乎是一种残酷的做事方式,因为我想结合子集(例如金属和棉花的平均价格)。

我也试过

但得到了警告。

试图使用lapply, split, ddply, and subset,但我对 R 的理解还不够强,无法执行。

我知道这可能很简单,但我一直坚持如何使用矩阵来创建多个子集,而不是一次创建一个子集。

任何帮助都会很棒。

我看过以下

使用整数矩阵对 data.frame 进行子集

用另一个矩阵的 id 对矩阵进行子集化

从子集中选择观察值以基于 R 中的大型数据框创建新子集

R在另一个数据框中逐列选择数据框中的列

0 投票
1 回答
175 浏览

r - 如何更改数据框列表中的所有 0

我想在数据帧列表中将所有 0 更改为 0.0001,以避免在获取日志时使用 -Inf。因此,按照Replace all 0 values to NA的说明,我将函数编写为

但是,当我使用sapply我的数据sapply(a,set_zero_as_value)时,结果返回为

并进一步检查列表a,其中的0a根本没有变化。有解决方案吗?

PS:列表a可以创建为

0 投票
2 回答
1096 浏览

r - 按组对列求和

我希望按组对列进行求和。在下面的示例中,我希望对 ( v1and v2)、( v3and v4) 和 ( v5and ) 求和,v6每个 byr1和。r2r3

我可以使用sapply下面的语句来做到这一点,我得到了正确的答案。但是,所需的代码很复杂。有人可以告诉我如何在包装中data.table或使用rollapply和/或其他选项进行相同的操作吗?我还没有探索过这些选择。

抱歉,如果这是重复的。

0 投票
3 回答
5191 浏览

r - R for 循环比 sapply 快

每当我用 apply 语句替换 for 循环时,我的 R 脚本运行得更快,但这里有一个例外。我在正确使用 apply 系列方面仍然缺乏经验,那么我可以对 apply 语句做些什么来超越(即变得更快)比 for 循环?

示例数据:

目标是填充一个数字矩阵 m.res,其中每一行包含 vc 中每个元素的前 3 个值。这是for循环:

下面是我的“应用解决方案”。为什么它更慢?我怎样才能让它更快?谢谢!

更新:我遵循@John 的建议并生成了两个经过修剪且真正等效的函数。事实上,我能够稍微加快 lapply 函数的速度,但它仍然比 for 循环慢。如果您碰巧对如何优化这些功能以提高速度有任何想法,请告诉我。谢谢你们。