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

r - 使用 purrr::map 和 forcats::fct_reorder 按每个子组重新排序因子水平

我正在尝试根据第三个变量对该变量的每个子组中的变量的因子水平进行重新排序,但出现错误。

我承认这在没有上下文的情况下有点难以理解,所以我使用gapminder数据集来说明。在这里,我想根据变量的大小对country变量的每个类别中变量的因子水平进行重新排序:continentpop

我究竟做错了什么?

0 投票
0 回答
215 浏览

r - 单行中的多个管道不会编译

我无法理解下面的 R 脚本中出了什么问题。在调用 fct_expand 之前定义变量级别会导致编译成功,但是当我将定义直接插入 fct_expand 时,R 会产生错误

“mutate_impl(.data, dots) 中的错误:尝试应用非函数”

复制错误的 R 脚本(Microsoft R 打开 3.4.0.0 和 R 3.3.3):

编辑:代码不会在尝试运行 R 3.3.3 的 4 台机器中的 3 台上运行(没有错误的计算机从未安装过 RTVS 或 Microsoft R open。)。所以它必须依赖于我猜的一些设置。下面的例子说明了同样的问题;在上面给出以下代码错误的机器上:

产生两种不同的结果:

在没有给出编译错误的计算机上,后一个代码会导致:

0 投票
1 回答
333 浏览

r - forcats::as_factor 可以返回有序因子吗?

可以as_factorforcats返回一个有序的因素吗?如果没有,这似乎是一个缺失的功能,尽管我没有在GitHub 页面上看到它作为问题报告。

我努力了:

如果我不能,那么这样做是否有任何潜在危险:

或者这样做会更好:

0 投票
0 回答
148 浏览

r - 使用 forcats relevel 功能时出错

我有一个数据框,其中包含X坐标Y值和对应IDVal

X为中的现有Y值添加缺少的 ID df1

查看 ID 值的频率。

我只对两个 ID 感兴趣以进行进一步分析,其余的可以分组为一个随机值。在函数的帮助下fct_other,我将它们重新编码Other为预期的频率。

由于该fct_other函数将“其他”值作为最后一个因子值并且我首先想要它,因此我使用fct_relevel了同一包中可用的其他函数。

但它给出了意想不到的结果。关于可能出了什么问题的任何想法?

更新: 错误试图保留不可用的值。

当我尝试保留唯一值时,缺少选定的值:

提取唯一值后重新调平可以完成这项工作:

这是这样做的有效方法吗?

0 投票
1 回答
3798 浏览

r - 改变因子水平——“f”中的未知水平——不能改变水平

我有一个包含许多行业名称的因素。我需要将它们分解为主要类别和行业。例如,因为我允许受访者随心所欲地做出回应,所以我的级别数量夸大了(例如金融服务、金融服务、银行、金融)。因为这些案例不匹配,它们作为一个额外的级别出现,所以我试图用 forcats 折叠它们:

我收到一条警告,上面写着:“金融服务”未知。这非常令人沮丧,因为当我调用向量时,我可以看到它确实存在。我已经尝试复制和粘贴通话中的确切单词,重新编写它,似乎有隐藏字符阻止它被更改。

如何正确折叠这些值?

当我去“重估”说最后一级“金融服务”时,它告诉我它是一个未知的字符串。

编辑 dput(x$industry) 的输出

编辑想通了。有些条款在结束后有额外的空格。例如,虽然当我调用 Prescreen$Industry 时,它会返回多个名称,如“Banking”和“Corporate Finance”,但它并没有告诉我在 level 后面有空格。银行业实际上是..“银行业”有一个在 R 中没有出现的不可见空间。如何确保这是可见的并且不会再次发生?

我可以在列中运行 len 函数吗?如果是这样,它是如何工作的?PrescreenF$Industry(“银行”)?

0 投票
3 回答
3462 浏览

r - 在 R 中使用 fct_reorder 根据值重新排序因子

我的数据:

我正在尝试使用ggplot2但不工作fct_reorderdrlib::reorder_within(word, word_total, LoB)给我一条警告信息:Unequal factor levels: coercing to characterbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vectorbinding character and factor vector, coercing into character vector

这是代码:

或者

它不是按降序绘制的。我错过了什么?

更新:ungroup()之前失踪了mutate()。谢谢大家

0 投票
1 回答
134 浏览

r - 对多列中的因子使用自定义汇总函数

我进行了一项包含大量项目的调查,每个项目都有不同的分类响应选项存储为因素。我需要以一种有效的方式总结这些列,最好是具有类似forcats::fct_count(). 我还需要知道为每个变量提供了多少非 NA 响应,因为不同的项目显示给不同的受访者。我编写了一个函数来制作一个整洁的小摘要数据框,但我正在努力沿着每一列有效地运行这个函数,然后将结果组合成一个对象 (ala ddply)

我已经尝试过sapply()gather()将数据转换为长格式然后运行ddply(),但是每个变量的不同级别的问题似乎一直在阻碍。请参阅下面的数据集和我的汇总函数的可重现示例。我可以为每个变量运行该函数(如下所示),但我知道必须有一种更有效的方法来执行此操作,而不涉及创建大量单独的摘要数据框对象。感谢您的任何帮助,您可以提供。

0 投票
2 回答
519 浏览

r - 更改 R 中的内部因子水平(对避风港很重要 - write_dta())

haven包提供了一个非常有用的函数,用于使用 write_dta() 函数将数据框/Tibble 导出到 Stata。

当 R 因子写入 Stata 时(使用 write_dta() 函数),内部 R 因子级别变为以 Stata 长格式保存的数值,级别被写入变量标签。(这些内部 R 因子水平与应用于as.numeric(factor)因子相同。)

我想明确设置 R 的内部因子级别,以便在 Stata 中获得所需的 numlabels 值。

为了显示:

但是,我想根据高度具体的模式设置 R 的内部因子水平。例如,我想要内部级别:

蓝色 = 2 棕色 = 1 绿色 = 6 不公开 = -1

因为这与问卷上的编码相匹配。

我尝试使用forcats包中的 lvls_recode。该函数如下所示:

但正如您在此处看到的,我需要指定的新 idx 不能,因为只采用序列号。

看了stats::relevel()也没有解决问题。

0 投票
1 回答
2522 浏览

r - 如何在具有不同因子级别的不同数据帧的函数中使用 Forcats::Fct_Collapse

我有两个简单的数据框(底部的代码),我想通过折叠“动物”列来创建一个新的重新编码变量。我通常用 forcats::fct_collapse 来做这件事。但是,我想创建一个函数来将 fct_collapse 应用于许多具有相同变量的不同数据帧,除了一些可能缺少一个或两个因子级别。例如,在这种情况下,Df2 缺少“Rhino”。

有没有办法可以更改代码(使用 tiyverse),以便将缺少的因子类别返回为 NA?在这个例子中,我知道它是“Rhino”,但在我的真实数据中可能还有其他缺失的级别。除了 forcats::fct_collapse 之外,我对其他选项持开放态度,但我想留在 tidyverse 领域。

样本数据:

0 投票
0 回答
1041 浏览

r - 错误:不知道如何在转换为 ts 格式后将 o 添加到绘图中

将我的数据集转换为 ts 格式后,我收到“错误:不知道如何将 o 添加到绘图中”。我正在做一个预测项目,我有这个从 xts 转换为 ts 的数据集:

一旦我尝试通过自动绘图将我的预测覆盖到原始数据集,我就会收到错误消息:

我尝试更改开始值和结束值,但仍然出现相同的错误。我在这里错过了什么吗?如果有人可以帮助我,我将不胜感激,因为我刚刚开始使用 ts 格式。