问题标签 [tidyselect]
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 - 由于 .key 已被弃用,如何重命名 nest() 中的数据列?
在.key
被弃用之前,我这样做了:
的帮助nest()
指出,现在这是使用 tidy select 执行的,但我不知道如何。
r - 将 tidyselect 辅助函数添加到向量
我经常为我在编码时最常使用的变量创建一个“向量”。通常,如果我只是在其中输入矢量对象,select
它就可以完美地工作。有什么方法可以在字符串的辅助函数中使用吗?
例如我可以做
但这并不可取,因为 1)select_
已弃用,2) 它不可扩展(即,x = c('hp', 'matches("cyl")')
不会同时获取相关列。
无论如何我可以在向量中使用更多的 tidyselect 辅助函数吗?
注意:如果我这样做:
我得到一个错误,所以我肯定需要以enquo
某种方式。
r - 从 psych::describe 替换数据帧中模式的平均值
我喜欢 psych::describe 的汇总统计数据,但我想用众数替换平均值,但仅适用于因子变量。如何对 Mode 的输出进行编程以替换 setosa(或任何其他因素变量) 我使用 iris 进行复制,即使它只有一个。
如何根据变量的结构来组合均值和模式?
- 有没有办法结合
if_else
where 告诉 R 什么时候做什么FALSE
?如果当变量不是一个因素时我能得到输出的平均值,我会得到一个结合了平均值和模式的列。
Psych
生成一个数据框,其中标识变量名称不可选择,因此这使得任何手动编码或在 mutate() 中列出变量都是不可能的。它们也是我数据集中的大多数变量(因此即使可以完成手动或 mutate(case_when) 也会非常乏味)。
PS。我尝试更改我apply()
的 tomap
函数,但输出与 the 不兼容,cbind()
因为它会列出每个因素的其他级别。如果您对代码的那部分有更好的想法,或者认为这是我可以结合的地方getMode
,mean()
我不介意建议。
r - 如何将 tidyselect 样式的列名列表拼接到我的函数的调用中
我正在尝试编写一个对分组数据框进行重复数据删除的函数。它断言每个组中的值都相同,然后只保留组的第一行。我试图给它提供类似 tidyselect 的语义,pivot_longer()
因为我只需要将列名转发到summary(a = n_distinct(...))
调用中。
所以对于一个示例表
我期待调用remove_duplicates(test, c(v1, v2))
(使用 tidyselect 助手c()
返回
但我明白了
我尝试使用新的“拥抱”语法来解决这个问题(参见下面的函数代码),但失败并显示上面显示的消息。
我认为我需要以某种方式指定表达式的评估上下文vars
必须更改tab
为当前正在评估的子数据框substitute
。所以像
但我对技术细节的了解不足以真正完成这项工作......
r - R:将 mutate 调用从处理三个二进制变量调整为 n 个二进制变量
我有一个数据框,其中包含与时间段 1 相关的 3 个二进制变量和与时间段 2 相关的三个相应变量。
我想知道观察是否在第 1 期但在第 2 期没有1
给定item
。此外,我想知道观察是否有任何实例,其中项目1
在第 1 期而不是第 2 期。
所以理想的输出看起来像
到目前为止我已经尝试过
我想概括上述 mutate 调用,以便它们可以处理 n 个项目,而不仅仅是 3个。 有没有一种方法可以ends_with('check')
用于最终的 mutate?变量名称没有变化,但项目编号和时间段不同。
r - 使用 dplyr::select 进行评估在我的函数中不起作用
我对处理 R 中的评估问题真的很陌生。
这是我要编写的函数:
该函数选择一个数据框df
并按列将其连接到自身col_pair
。问题是,如果我运行f(example, pairs0)
,我会得到“连接列必须存在于数据中”
有人可以帮忙吗?
r - 无法使用 dplyr rename() 和 rename_with() 重命名重复的列名
给定具有重复列名的 tibble 或 data.frame ,我想使用dplyr::rename
or dplyr::rename_with
:
(a)用序列数字后缀('a_1'
,'a_2'
等)区分重复的名称,或者
(b)完全重命名每一列。
有:
想:
期望rename
/rename_with
可以执行此操作似乎是合理的,尤其是因为colnames(d) <- c("a_1", "a_2")
看起来很明显且不复杂。
但是到目前为止,我尝试过的三种方法都出现了不同的错误和/或意外行为:
1.使用rename()
,一列重命名,另一列不重命名:
2.使用rename_with()
,其中我使用函数添加数字后缀,我收到此错误:
请注意,rename_with
当数据没有重复的列名时,这种使用按预期工作:
3.使用旧的rename_all()
,我得到一个不同的错误:
rename
我在GitHub 问题中找到了关于处理重复项的讨论,tidyselect
但那是关于如果用户使用创建重复的列名rename()
该怎么办,而不是如果他们试图取消重复该怎么办。
我是否缺少语法,或者该dplyr::rename
系列没有设置为摄取重复的列名?
(我还想更好地理解为什么rename
在上面的示例中只重命名一列,但这不太实用,只是我很好奇。)
提前致谢。
r - 我可以用starts_with 对列进行分组吗?
我正在处理一个大数据框,该数据框有许多我想要分组的列。我想做这样的事情:
有没有办法做到这一点?也许使用 group_by_at 或其他类似功能?
r - 选择多个日期列并将因子变量转换为日期
我有一个 data.frame,其中包含多个包含日期的列。目前它们被认为是“因子”类。我想选择所有应该是日期的列(其中有 10 个,它们的名称中都有“日期”,例如 Date_Construc、Date_use、Comp_date ...)并将它们从 factor 转换为 date。
这是我尝试过的:首先我想选择向量中的相关列
然后
也试过
我明白了
还
结果,
这是当前格式的示例数据:
r - 为什么可以在 dplyr 辅助函数“across”中检测到 tidyselect 辅助函数“where”?
“tidyselect”包提供了一个选择帮助函数where
。where
用于选择具有自定义功能的数据框列。它是“tidyselect”的一个内部函数。这意味着where
不会加载到您的命名空间,您只能通过tidyselect:::where
.
但是,我从dplyr 小插图中看到了以下示例: columnwise operations 。
在这个例子中,where
没有前缀“tidyselect:::”,但很明显,代码中没有错误,它产生了有意义的结果。这对我来说似乎很奇怪。我想知道为什么代码正常运行。
我想这是由于“代码引用”,这是 tidyeval 方法的一部分。粗略地说,代码引用将代码作为表达式挂起,然后在“内部环境”中评估表达式。这只是一个直观的猜测,我不知道如何测试它。
我希望有人可以帮助我解决“哪里”问题,或者为我留下一些关于代码如何运行的参考。