问题标签 [across]

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

r - 排除列时改变的正确语法

我正在尝试将代码从 using 转换mutate_at为 using mutate(across())。我假设我有一个语法错误,但在试图弄清楚它的 45 分钟后,我决定是时候参与这个论坛了。

可重现的例子:

我以前的 mutate_at 代码工作正常:

当我尝试转换为mutateacross使用它时,我收到一个错误:

我怀疑错误源于试图排除该行中的列.cols = ,但我尝试过.cols = !c(index_name, totalReturn_daily).cols = c(-index_name, -totalReturn_daily)甚至.cols != c(index_name, totalReturn_daily)但我得到了同样的错误。

感谢您的帮助!

0 投票
1 回答
39 浏览

r - 排除列时改变的正确语法,第 2 部分

我以为我在这里找到了我的问题的答案,但是当我使用更大的数据集时,我得到了不同的结果。我怀疑差异是因为na.locf线路的行为方式。

基本上,我正在将以前使用mutate_at的代码转换为带有mutate(across()).

在下面的第一种情况下,数据被正确填充,因为df_initial仍然按 index_name 分组。在第二种情况下,我假设因为我必须取消分组mutate across才能工作,所以我得到了不同的答案。

所以这里有一个更大的数据集的例子来说明这个问题。

可重现的例子:

下面的第一种方法给出了正确的值,但下面的第二种方法没有。因此,我试图在方法#2 中得到相同的答案,而我在方法#1 中得到相同的答案。

谢谢!

0 投票
2 回答
32 浏览

r - 如何以编程方式将转换应用于多个变量并使用 dplyr for R 保留原始变量和转换后的变量

我有一个大型数据集,我想以编程方式在某些变量中应用一些转换。为了说明,假设我想将日志应用于字符向量中包含的变量。我想保留输入变量并生成一个新变量,为字符向量的每个变量添加(或附加)前缀(或后缀)。由于几行代码相当于一千段代码,因此我的主要目标df_aim是以较少重复的方式获得结果,例如在df_syntax.

代表

如果这个问题重复,我感谢您的关注并道歉。

0 投票
2 回答
649 浏览

r - How to mutate several columns by column index rather than column name using across?

Building on this questions:

R dplyr mutate on column index

dplyr: how to reference columns by column index rather than column name using mutate?

I want to mutate several columns using column indexes for both the source and the destination of the mutate like:

gives:

0 投票
1 回答
44 浏览

r - 组合函数时如何在cross()中使用函数名?

当我尝试将该across()函数与许多要应用的函数一起使用时,结果我得到的列命名如下:

列的名称是1_Petal.Length, 2_Petal.Length等等,但我想得到的是函数的名称而不是数字,例如mean_Petal.Length, median_Petal.Length等,就像参数中只有一个函数一样.fns。我知道我可以用 来命名函数.fns = c(mean=mean, median=median, var=var, sd=sd),但是我在这里缺少什么更简单的方法吗?

0 投票
2 回答
63 浏览

r - 使用函数内的列名跨列应用函数

我正在尝试迭代 100 多列以确定单独列中的变量是否与列名匹配。我想也许 cross 函数可能能够但无法弄清楚如何在每一列上使用 mutate。请参见下面的示例。

我的表目前具有以下结构。

我希望最终结果如下所示:

0 投票
2 回答
71 浏览

r - 当级别数低于使用 dplyr 的给定阈值时,将数值变量转换为因子

当级别数低于 dplyr 的给定阈值时,我想将数值变量转换为因子。

这对于编码为数字“0/1”的二进制变量最有用。

示例数据:

我可以使用 mutate()、cross() 和 where() 轻松地将所有变量转换为因子,如下所示:

但是,对于 where() 函数,我找不到一种方法来改变多个条件,包括我的阈值参数。我想要这个输出:

尝试了以下方法,但失败了:

错误信息:

也许我不太了解cross() 和where()。欢迎提出建议。

附加问题:为什么在 is.factor 之前包含否定运算符 (!) 会在没有 (!) 的版本完全没问题时让我出错?

错误:mutate()输入有问题..1。x 无效的参数类型 ℹ 输入..1across(where(!is.factor), as.factor). 运行rlang::last_error()以查看错误发生的位置。

0 投票
1 回答
194 浏览

r - 如何在分组数据帧上使用 dplyr::across 和多参数函数?

我想计算多列的加权移动平均值,每列使用相同的权重。加权移动平均值应按组计算(与使用具有多个参数的函数的 `dplyr::across`形成对比)。

在下面的示例中,分组应该使加权移动平均值每年“重置”,从而为每年的前两个观测值产生缺失值。

我该如何进行这项工作?

reprex 包于 2021-03-31 创建(v1.0.0)

0 投票
2 回答
313 浏览

r - 使用 dplyr 在除某些列之外的所有列中发生变异

我发现这across()对于在多个列上重复操作非常有用。但是,我仍然没有完全理解如何为操作选择特定的列。

假设我想将一个函数应用于mtcars之外的所有列。 gearcarb

我尝试了类似的东西

但是,这会引发错误

取消选择某些列的正确方法是什么across

0 投票
1 回答
128 浏览

r - 如何使用 cur_column 选择列并应用函数?

我正在尝试添加列,rowSums因为它是一个快速函数,使用 cur_column 因为选择列取决于初始列a_value b_value。这是一个代表,所以它需要使用rowSums cur_column或类似的东西,因为它将用于数千行和 ~ 16 列。

输入:

输入的结果。

所需的输出。value_value_exc_param是a|b_param和_param之和i i+1a|bia|bi+1

到目前为止我尝试了什么,它不起作用:

可能还有另一种我不知道的简单有效的方法,请随时提供,谢谢。