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

r - 如何跨多个列匹配列并在新列中返回匹配的 col_name

假设我有一个数据集 df,其中我想X在多个列的值之间匹配 col 的值,A to F并希望在新列中返回匹配的列名(否则 NA)。

输入

我想要的输出

我会更喜欢dplyr/tidyverse语法,我将集成到我现有的语法中。

0 投票
0 回答
71 浏览

r - 使用 `mutate(across(where(is.numeric) , some_function))` 代替 `mutate_if(is.numeric, some_function)` 有什么好处吗

从 dplyr 1.0.0 开始,该across函数已取代旧的mutate_ifsummarise_attype 函数。

每当我使用acrosstomutatesummarise跨满足某些谓词(例如is.numeric())的列时,我发现自己想知道为什么我要使用这种长宽的语法。

我有一个模糊的想法,即新语法对于某些用例来说更加通用,但是当我的需求是一个简单的谓词变异时,使用是否有任何优势(除了遵守推荐的最佳实践)

mutate(across(where(is.numeric), some_func))

更简洁(在我看来更容易理解)

mutate_if(is.numeric, some_func)

0 投票
2 回答
124 浏览

r - tidyverse 与粘贴的外部向量一起使用,其中包含要变异的列名

让我们假设以下数据:

让我们进一步假设我有一个包含我想要处理的列名的向量,例如

现在我想要做的是改变对象中除第一个元素之外的所有列,df使用. (在这种情况下,我会循环遍历我的两个 var_names 对象)。var_names_...across

所以在第一个循环中我想改变列 x 和 y,在第二个循环中我想改变 z。

但是,我收到此错误消息:

我以为我终于了解了一些 tidyeval 事物的用例,但显然我的!!sym方法在这里行不通。有什么建议么?

0 投票
1 回答
39 浏览

r - 如何转换这个旧的 dplyr 语法?

我是 dplyr 的新手,我在 (i) 理解它的语法和 (ii) 将其旧版本代码转换为我可以在其最新版本 (dplyr 1.0.2) 中使用的代码方面遇到了困难。特别是,我对以下两行代码感到困惑:

我认为第一行代码应该用 NA 替换所有“未回答”。

你认为下面的变换合适吗?

但是,我不明白第二行代码是关于什么的。我相信这是关于创建某种有序变量,其中“完全没有”、“每周一次”、“每周 2-4 次/一半时间”和“每周 5 次或更多次/几乎总是”作为级别.

您对这一行的作用以及如何使用 mutate(across()) 将其转换为新语法有什么建议吗?

一些上下文

我正在尝试遵循有关如何使用 Bootnet R 包的教程。以下文字来自教程第一部分

要下载数据集,请访问: https ://datashare.nida.nih.gov/study/nida-ctn-0015并单击“CTN-0015 数据文件”。相关数据文件称为“qs.csv”,可以使用默认的 read.csv 函数将其加载到 R 中:

FullData <- read.csv("qs.csv", stringsAsFactors = FALSE)

这会以长格式加载数据,其中包含带有主题 ID 的列、带有管理项目名称的列以及包含项目响应的第三列。对于网络分析,我们需要数据是宽格式的。此外,我们需要指定响应“NOT ANSWERED”表示缺少响应,而其他响应是有序的。最后,我们需要在 PTSD 症状频率评分的基线测量中提取相关数据集。为此,我们可以使用 dplyr 和 tidyr R 包,如下所示:

本教程的第二部分继续进行。

0 投票
1 回答
861 浏览

r - 如何在 dplyr::across() 中使用 n() 按组计算行数?

在以前版本的 dplyr 中,如果我想使用 获取除其他汇总值之外的行数summarise(),我可以执行类似的操作

我的直觉是使用新across()功能获得相同的输出

问题是特定于n()函数的,只是调用sum()按预期工作:

我尝试了各种语法变体(使用 lambdas、试验cur_group()等),但无济于事。我将如何获得所需的结果across()

0 投票
4 回答
254 浏览

r - 将 dplyr::across 与两组变量一起使用

我有两组变量,例如 variablea和 variable a_avail。我正在尝试根据 的值更改 的a值,a_avail并且想知道这是否可以使用acrosswith来完成glue

这是我尝试过的。没有产生错误,但胶水似乎没有拾取 的值,.x_avail因为所有返回的值都是 NA:

reprex 包(v0.3.0)于 2021-02-12 创建

0 投票
1 回答
43 浏览

r - tidyverse 解决方案,用于将多个列重新编码为列名后缀增加一的新列

这只是伪代码,但假设我有 22 个列,从 Q46x47_1 到 Q46x47_22。

我现在想应用以下重新编码逻辑:

当然,我不想手动输入。所以我想知道是否有一种优雅的方式来批量重新编码。我知道across,但我没有看到如何通过增加的后缀号传递每个第二个变量的方法。

所以我开始:

我的问题是(假设 if_else 可以在这里使用)如何...在 if_else 命令中指定我需要传递 LHS 列名的部分。

有任何想法吗?


具有列子集的简短可重复示例:

0 投票
1 回答
60 浏览

r - 在 R 中的自定义 ifelse() 中调用数据变量

我正在尝试编写一个ifelse()我想传递给dplyr::mutate(across()). 该函数应将 中指定的列中的 NA 值替换across()为名称相似的列中的值。

例如,在以下虚构数据中,我想用 替换缺失x_var1y_var1缺失:x_var2y_var2

我尝试构建以下函数:

但它似乎不起作用。

但是,如果我直接运行这个单变量案例ifelse,我会得到预期的结果。

如何构建允许我调用数据变量的自定义 ifelse 语句?

编辑:我得到以下适用于多变量情况,但仍在使用ifelse而不是不同的功能。

0 投票
2 回答
798 浏览

r - Rcross 仅找到正值或仅负值 tidyverse

在 dplyr Column-wise 操作中有这个例子:

如果我们稍微改变一下小标题:

我们想要为两列获取负值或正值,我们需要命名列:

如何across()做到这一点?

0 投票
1 回答
27 浏览

r - 跨越多个论点

这可能是一个非常愚蠢的问题,关于“跨”功能的应用,该功能具有多个列并且每个列都应用了不同的乐趣。例如,下面是来自“iris”数据的示例,其中以“Sepal”开头的列名被平均。如果我连同这个我想取以“花瓣”开头的列的中位数怎么办。如何在同一个摘要中给出两种不同的列类型和乐趣?