问题标签 [forcats]

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

r - 基于以某个字符开头的级别自动重构?

我正在寻找一种方法来根据级别中的某些模式自动重新编码变量中的因子。我打算将解决方案迭代到更大的数据集。

我有一个更大的数据集,其中包含下面显示的示例的多个实例。这些级别往往具有以下模式:

主要类别是 1、2、3 和 4。级别 11、12、13 和 14 是级别 1 的子类别。我希望能够简化分组过程。我已经使用 成功执行了重构fct_recode,但我的意图是将这个过程扩展到遵循类似编码模式的其他变量。

reprex 包(v0.2.1)于 2019 年 5 月 31 日创建

正如预期的那样,此方法成功地将 11、12、13 和 14 的子类别分组为 1。有没有办法在不手动更改每个子类别的级别的情况下做到这一点?将这个过程扩展到具有相同模式的几个变量的一般方法是什么?谢谢你。

0 投票
1 回答
271 浏览

r - 如何将折叠的因子水平(用于多个变量)保存到新的数据框中?

我正在尝试折叠因子水平,最初,count(a7_edu2)输出显示折叠已经起作用,但是当我检查结构并查看 RStudio 视图时,更改不会影响实际变量。

关于保存为新变量或覆盖旧变量的任何建议?谢谢!

我曾经fct_collapse折叠成三个类别并尝试mutate()使用新级别创建一个新变量。我已经尝试保存到一个新变量中,并且还保存了 transmute() 而不是 mutate()。我会对新变量或替换旧变量感到满意。

我预计输出是“具有 4 个级别“高中”、“文凭”、“学士”、“其他”的因子,但它给出了原始的“具有 13 个级别“榆树学校”、“7 级或 8 级”的因子,..: 8 7 6 10 7 7 8 3 7 10 ..."


更新的问题:它可以将一个变量保存到新的 df ( SCI_collpase) 中。但是,当我尝试将其他新的折叠变量保存到同一个数据框时,它会覆盖以前的折叠...我尝试指定新列SCI_collapse$edu,但随后它重命名了 df 中的现有变量...如何折叠多个变量并添加它们每个到一个新的df? 保存或编写管道的建议?

0 投票
1 回答
206 浏览

r - 使用 relevel() 或 fct_level() 迭代参考水平

我在数据集中有几个分类变量,我必须手动更改参考水平。我希望找到一种方法来迭代变量和参考级别的集合,以避免复制和粘贴数十次。

我尝试使用 和 的组合mutate_atrelevel尝试通过包含我想要的参考水平的向量。这没有用。我一直无法找到任何其他专门解决我的问题的迭代部分的问题。请参考下面的玩具示例。

reprex 包(v0.2.1)于 2019 年 7 月 2 日创建

我的意图是执行更改参考级别的所需操作,而无需为每个步骤显式复制和粘贴代码。此示例的级别是数字,但我的实际问题包含数字和字符串的混合,因此我不能依靠升序来获得正确的参考级别。

0 投票
1 回答
217 浏览

r - predict.glm 在返回 NULL 的有效模型上

我想使用predict.glm用于训练原始模型的相同数据集来返回预测,但我一直得到NULL我的结果。我有一个有效的模型,没有因缺失值而删除的行。

我的代码有很多变量,并且项目本质上有点敏感,所以我尝试使用玩具示例重现我的问题。但是,由于我不确定是什么导致了我的问题,我无法NULL使用glm.predict(object, type = "response). 我希望有此问题经验的人能够推荐解决方案。

我不确定什么条件会导致上述调用产生我指定NULL的结果。predict.glm代码中的结果是我希望得到的,但在我的实际项目中,NULL即使它过去为我返回了正确的值,我也会得到。我意识到这不是一个很好的可重复示例,但我无法提供有关我的实际数据的详细信息。我感谢任何帮助。

0 投票
1 回答
637 浏览

r - 在 R 的函数中使用 fct_recode

我正在尝试在函数中使用 fct_recode 并给出错误“错误:f必须是一个因素(或字符向量)。”

编辑:如果我运行它,那么它直接工作不知道如何将它合并到函数中

当我将 df[,c1] 更改为 df$c1 时它起作用了,不知道为什么 & 不知道如何将它构建到我的重新编码函数中

我正在尝试的代码

使用以下命令找到 df 数据集的 c1 列的结构(它是一个大数据集,因此共享一列的输入,如果有问题请告诉我)

函数必须失败的任何原因

0 投票
1 回答
1013 浏览

r - 如何重新调整小标题中的因子

我正在尝试在以下小标题中更改因子字段 Grade 的级别:

我正在使用代码执行此操作:

但这是返回错误:

错误:f必须是一个因子(或字符向量或数值向量)。

这个领域是一个因素,我做错了什么?

0 投票
1 回答
139 浏览

r - 因素的崩溃

使用 forcats::fct_collapse 折叠因子水平会导致意外结果

它遵循 fct_collapse 示例中的一些修改代码

例如,为什么“强大的民主主义者”级别最终会出现在“其他”级别?

非常感谢您的提示,我做错了什么。

0 投票
4 回答
46 浏览

r - 合并长度相等但不同级别忽略NA的因子变量

我有来自各种来源的调查数据。大多数是不同水平的因子变量。合并时,这意味着存在相同长度的变量,每个变量都包含许多带有信息的行,而其他行是NA. 因此,在合并完整 df 中的每一行时,应该在其中包含信息,同时忽略NA's 并保持相同的长度。

我已经尝试过这个包,因为它包含操纵不同因子水平的函数,但我还没有找到一个解决方案,可以满足在将不同因子与其相应水平合并的同时forcats去除's。NA

合并变量应该看起来像一个包含以下内容的因子:

0 投票
0 回答
73 浏览

r - as_factor 函数的因子顺序异常

我正在尝试使用 as_factor() 按照它们在基础数据中出现的顺序创建因子级别。该函数在底层数据是字符的情况下工作正常,但在它们是数字的情况下不能正常工作。

我尝试了 as_factor 文档中给出的示例代码。它使用底层字符变量,并给出与底层变量相同的顺序;这就是 as_factor 应该做的。但是对于数值变量,顺序是排序的,并且 as.factor 和 as_factor 给出相同的顺序。

reprex 包(v0.3.0)于 2019 年 8 月 15 日创建

没有错误消息。问题很简单,除非我明确转换为字符,否则我没有得到基础数据的顺序。

我不确定这种情况是功能还是错误。但如果它是一个特性,我建议它应该出现在函数文档中。

0 投票
1 回答
34 浏览

r - ggplot中的订单类别

问题

我想知道如何使用fct_recode重新排序图中变量的位置geom_col。目的是根据澳大利亚的价值观从大到小,从下到上排序。

在此处输入图像描述

我的尝试

数据