问题标签 [mapply]
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.
r - R基于因子标签乘以2个数据帧
我有 2 个数据框。第一个有多行,第二个有单行。我需要将第一帧的每一行乘以第二帧的单行。第一个数据帧被调用Costs
,如下所示:
第二个表的名称Weights
如下所示:
当我将它们相乘时,如果表中缺少一个因子,Weights
我需要表中的相应因子Costs
需要变为0.0
. 我想要的结果是:
之后,我将按行对 Zone.* 列求和,以获得我已经知道该怎么做的总数,但如果我可以跳过中间步骤,那就太好了。我正在寻找的最终结果是:
我不确定如何使用尺寸不匹配的数据框执行此操作,因此非常感谢任何帮助。
r - 在 mapply 中显示迭代计数
我正在使用 mapply(function,args) 来处理一个大数据集。100 次迭代后,我需要设置 1 秒的延迟。所以问题是是否可以在 mapply (function, args) 中显示迭代计数或进度条谢谢
r - 根据通用数据框值组合列表元素
对这个问题的后续行动,即使这个例子是具体的,这似乎是一个通用的应用程序,所以我认为值得一个单独的线程:
一般的问题是:如何获取列表中与原始数据框中的值相对应的元素,并根据原始数据框中的值组合它们,尤其是当列表中的元素长度不同时?
在这个例子中,我有一个数据框,它有两组,每组按日期排序。我最终想要做的是得到一个按日期组织的数据框,其中只有每个细分的相关指标。如果某个段没有特定日期的数据,则它得到一个 0。
以下是一些实际数据:
因此,对于“abc”部分,我只关心相对于其基准 75 的 (value/a)。对于“xyz”部分,我只关心相对于其基准 0.04 的 (k/x)。
最终我想要一个看起来像这样的数据框:
其中,由于“xyz”只有 2013 年 1 月 1 日至 2013 年 1 月 3 日的信息,因此之后的所有内容都为 0。
我是如何做到这一点的:
定义要传递给mapply的参数
以及根据基准获得性能的功能
将这些传递给 mapply:
现在的问题是,由于分割的长度不同,输出看起来像这样:
有没有办法从原始数据框中为每个拆分引入日期,并根据这些日期进行组合(在没有数据的情况下使用 0)?
r - 将函数应用于多个列表
我正在尝试在具有销售分类变量的数据框架上运行一些基本统计数据(以及以后更深入的统计数据)。除了销售额之外,它还跟踪区域(商家所在的位置)、星期几、一天中的时间(午餐、下班后等)以及其他各种信息。
这是数据的一个小的随机子集:(请注意,这是一个基本表示形式 - 实际数据框有 38 列 - 我只是去掉了大部分不适用的列)
我要做的第一件事是尝试获得每个区域和一天中每个时间的平均销售额和中位数销售额。我想让 R 遍历每个列表并返回所有值。我试过这个:
但是,它仅将平均值应用于区域 1 中的每个时间段,而不是区域 1-7 中的每个时间段。所以,我的结果是这样的:
这是区域 1 的正确答案,但您可以看到它们对于每个区域都是相同的值。如何让 R 将该函数应用于多个列表并返回所有值组合?
接下来的步骤将是应用中位数,并在地区级别和不同的工作日进行评估,但我认为相同的想法将适用于所有不同的组合。
r - 在 mapply 中使用公式
我试图将一个简单的公式y~x
应用于函数,在这种情况下adonis {vegan}
,当在内部mapply
但我得到Error: object of type 'symbol' is not subsettable。
我正在运行:mapply(adonis, formula=dist_list~group_list, data=group_list, SIMPLIFY=F)
,其中 dist_list 是 dist 类中的距离矩阵列表,而 group_list 是因子列表。这同样适用于单个 dist 和 factor 对象。这也有效:mapply(betadisper, d = dist_list, group = group_list, SIMPLIFY=FALSE)
.
所以问题似乎出在使用formula
inside mapply
。我一直在尝试使用,substitute
但最终还是遇到了同样的错误。
这是提供可重现示例的尝试:
任何解决此问题的指针将不胜感激,谢谢!
r - 使用 mapply() 使用 factor() 分配值标签
我无法将列表中的值标签分配给数值变量。我有一个list()
包含十一个变量的数据集(以 a 的形式)。前五个变量每个都有单独的值级别,后六个每个变量都使用相同的 1-5 等级。我为前五个变量中的每一个创建了带有值标签的列表,并为比例创建了一个。现在我想自动将这些列表中的标签分配给我的变量。
我已将我的 11 个变量放在一个列表中,以便能够使用mapply()
.
这是我当前状态的示例:
除了无法将这两个部分结合起来之外,我的主要问题是输出格式。mapply()
以矩阵的形式给出结果,我再次需要一个包含特定变量的列表。
所以,我的问题是:如何在自动化过程中分配值标签并再次获得变量列表,这些变量现在包含标签信息而不是数字?
我在这里很迷茫。我的方法mapply()
通常可行,还是我完全走错了路?
提前致谢!如果您需要更多信息,请发表评论。
r - R中具有命名输出列的聚合映射
我有一个数据框,其中每一行都是一个唯一用户,并且有一列表示每个用户的选择以及背景变量的列。在实际数据集中,有 800 多个选项,背景变量可以有 2 到 60 多个级别。
我正在做的是根据各种不同的分组组合查找每个选择的总计数。我已经成功地做到了,但我现在想以一种有意义的方式命名它们。
对这个问题的第一部分有帮助的来源: How to use aggregate with a list of column names
所以这到目前为止有效。
正如R 中聚合中的 Name 列所看到的那样,可以将列名分配给您正在聚合的变量。我无法让它在 mapply 函数调用中工作。这是我的主要问题 --- 我如何自动命名每个分组组合的列表变量。
我这样做的蛮力方法:
如何以更自动化的方式完成此命名,以便它可以跨数据文件和多个变量工作?
更大的图片:这只是我想要绘制每个分组组合的最佳选择的频率的更大情况的一部分。我有代码可以确定每个分组组合中评价最高的职业,并为分组类别中的每个级别绘制这些频率。
添加 3-25-14:澄清出现这种情况的背景,尽管可能超出了本问题的范围。
个人保存了一个选择(从一长串列表中)。我想知道(以图形和数字方式),对于背景分组变量的不同组合,哪些选择是“最频繁”(及其相应的频率):即,五年级男性的最频繁选择,或 10 年级学生的最频繁选择状态 X,或所有处于治疗状态的高中生。我有代码可以让我完成每个单独的背景分组:制表(如在这个问题中所做的那样),找到“最常见”的选择,计算该组的频率统计数据,以及基于该组中涉及的变量绘制图表。总体而言,我正在尝试使其更加通用和矢量化,以便后续用户更轻松地定义他们想要查看的背景变量组合。
谢谢!我希望这是有道理的......我在这里阅读了很多问题和答案,但之前没有尝试过发布。
r - R + 大规模匹配值(使用应用?)
有没有办法使大规模匹配值更具程序性?基本上我想要做的是将一堆用于值查找的列添加到数据框中,但我不想每次都编写 match[] 参数。这似乎是mapply的一个用例,但我不太清楚如何在这里使用它。有什么建议么?
这是数据:
以及相应的查找表:
所以现在我要做的是:首先在“数据”中添加一个名为“reg_lookups”的列,它将将该区域与“查找”中的适当值相匹配。对“climate_lookups”等做同样的事情。
现在,我遇到了这个烂摊子:
我尝试使用函数来执行此操作,但该函数似乎不起作用,因此将其应用于mapply是不行的(另外我对 mapply 语法如何在这里工作感到困惑):
r - R:mapply函数返回错误:因子的水平集不同
我有两个数据框(DfA 和 DfB)。每个数据框都有三个因素变量:物种、类型和区域。DfA 也有一个数值列,我想用它来估计 DfB 的新列中的数值,基于共享属性。
我有一个函数询问物种、类型和区域,然后创建具有这些属性的 DfA 子集,并在子集上运行算法以估计新值。当我运行该函数并手动指定值作为测试时,它工作正常。
如果 DfB 中的所有因子水平和组合在 DfA 中都具有匹配的因子,则该函数可以与 mapply 一起正常工作。但是,如果 DfB 中的任何行包含 DfA 中不存在的因子水平,我会得到一个错误(因子的水平集不同)。示例:如果 DfA 包含区域 A、B 和 C 的数据,而 DfB 包含区域 A、B、C 和 D 的数据,则 mapply 返回错误;如果我删除区域 D 的行,则 mapply 函数有效。
我如何指定,如果该行包含使该函数无法运行的因子级别,则跳过它或放入 NA 并继续在该函数适用的行上运行该函数?
r - 将向量中的值分配给 lm 模型列表中的“调用”属性(映射?)
我正在使用lm
模型列表。让我们创建一个小例子:
实际上有大约 50 个模型。如果您打印该modlist
对象,您会注意到call
每个模型的属性都是通用的,即lm(formula = mydata[, 1] ~ mydata[, i + 1])
. 由于将需要此列表的后续子集,因此我希望能够方便地查看每个模型中因变量的名称,并将该名称分配给相应的call
属性:
可以看到,模型调用在 的第一个元素中已更改为“因子 1” modlist
。假设我有一个名称向量,我想分配它:
当然,可以将该向量的相应值分配给列表中的相应模型,例如:
有这个的矢量化版本吗?我怀疑它会是mapply
,但我不知道如何将赋值运算符与提取列表的相应元素结合起来,即[[()
。更多的是纯粹的反循环过早优化练习,但仍然:) 谢谢!