问题标签 [vctrs]

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

r - 实现一个并行属性 vctrs 类

我正在尝试使用vctrs存储表达式的包创建一个矢量类。主要是因为我想在不同的 vctrs 向量中使用它。表达式不是向量类型,因此向量表达式(vexpr此处命名)的简单实现会失败。

所以,我想,也许我可以将表达式本身作为与向量并行的属性来实现。

我很快就遇到了麻烦,因为我还没有实现样板vec_ptype2()vec_cast()方法。

所以我尝试实现样板方法。

这有助于连接向量,但返回错误的子集结果。

很好,所以我在 vctrs 系统之外定义了自己的子集方法,最初似乎可行。

但也开始产生荒谬的结果。

reprex 包(v0.3.0)于 2021-01-18 创建

很明显,我这里做错了,但是我没有成功调试这个问题。我也尝试过实现 for 的vec_restore()方法vexpr,但这让我更加困惑。您是否在某处看到过并行属性 vctrs 的不错实现?你知道我可能做错了什么吗?

此处的相关问题:如何使用可以与 c() 结合的 R vctrs 包构建对象(将 vctrs 与属性连接)

相关讨论:https ://github.com/r-lib/vctrs/issues/559

编辑:我没有嫁给并行属性的想法。如果vec_data(x)将是一个索引attr(x, "expr")也可以,但我也没有管理这个。

EDIT2:将表达式包装在调用列表中似乎很适合所有内容。但是,我仍然对并行属性/索引属性的稳定性感兴趣。列表包装示例(似乎所有方法都可以正常工作!):

0 投票
1 回答
27 浏览

r - `vec_arith` 包的双重分派错误

我正在尝试实施该vctrs软件包,但具体而言,我正在尝试使vec_arith双重调度正常工作。

如果我将它加载到全局环境中,下面的示例代码可以工作,但是如果从它自己的包命名空间中调用,它似乎找不到正确的调度。

如果你只用这个文件构建一个包,有人可以告诉我这是否可以重现吗?

我不知道它是否重要,但描述文件如下所示:

0 投票
0 回答
293 浏览

r - namespace:vctrs 将 group_by 与 dplyr 一起使用时出现错误消息

我正在尝试使用 dplyr 简单地按一个变量分组并根据其他变量进行汇总。我过去多次做过这种事情,但现在收到一条似乎与 vctrs 命名空间有关的错误消息。

给出预期的结果

但是,如果我尝试按 COHORT 分组并计数,则会收到错误消息:

错误是什么意思,我该如何解决?我在 WIN 10 上运行 RStudio 1.4.1106。开始收到这些消息后,我更新了我的安装,现在运行 R 版本 3.5.3,dplyr 0.0.5 vctrs 0.2.4

这是会话信息:

打字是一种技能……我正在运行 dplyr 0.8.5。那是最新的二进制版本。

0 投票
0 回答
59 浏览

r - 在新计算机上,read_spss() 突然导致我的所有代码导致:无法组合 `..1`和`..2`

在 R 中,read_spss() 非常适合导入数据集,但我只是将所有代码转移到我的新 MacBook 上,现在所有代码都不起作用——它都会生成以下错误消息:错误:不能结合..1..2

有谁知道为什么在我的旧计算机上工作的相同代码不能在我的新计算机上工作,以及如何让 read_spss() 像我以前那样工作?

我特别困惑,因为我最初的猜测是不同的列是作为不同的数据分类导入的,但是即使在一列中的算术也不起作用。谢谢!

当我运行 rlang::last_error() 时,我得到了这个:

<error/vctrs_error_incompatible_type> 不能..1..2. 回溯:

  1. stats::na.omit(SurveyState1979$V502[SurveyState1979$V502 == "1"])
  2. vctrs::: ==.vctrs_vctr(SurveyState1979$V502, "1")
  3. vctrs::vec_equal(e1, e2)
  4. vctrs:::vec_cast_common_params(!!!args, .to = .ptype, .df_fallback = DF_FALLBACK_quiet)
  5. vctrs:::vec_cast_common_opts(..., .to = .to, .opts = opts)
  6. 避风港:::vec_ptype2.haven_labelled.character(...)
  7. vctrs::vec_ptype2(y, x, ...)
  8. 避风港:::vec_ptype2.character.haven_labelled(...)
  9. vctrs::vec_ptype2(x, vec_data(y), ...)
  10. vctrs::vec_default_ptype2(...)
  11. vctrs::stop_incompatible_type(...)
  12. vctrs:::stop_incompatible(...)
  13. vctrs:::stop_vctrs(...)

而且,我对 dta 和 rda 文件所做的相同导入工作非常完美。

0 投票
2 回答
30 浏览

r - 具有唯一性约束的 R vctrs 子类化

在 R 中,我需要定义一个vctrs具有唯一性约束的子类。uid我可以在这里为这种新的向量类型提出一个最小的代码。

我可以创建那种类型的向量

如果我有重复的值,则会产生错误

串联起作用并产生更长的uid向量

但如果它创建重复项,则不会断言约束,因此不会引发错误。

正如@Rui-Barradas 建议的那样,base::c可以专门化,

但这不会影响...vctrs::vec_c()使用的功能tibble

我可以定义一些东西来强制在使用连接后断言唯一性约束vec_c吗?

一切顺利,

0 投票
1 回答
38 浏览

r - 如何使用 vctrs 将自定义格式应用于 tibble 列表列?

我正在使用创建一个新的vctrsS3 类,new_list_of()但在 tibbles 中使用时我找不到控制此类打印的方法。这是一个使用玩具 ' fruit_bowl' 类的最小示例。理想情况下,我希望列显示obj_print_data.fruit_bowl(), 即"2 types of fruit"和的输出"1 type of fruit",但似乎唯一会打印的是向量的长度。

reprex 包(v0.3.0)于 2021-04-10 创建

0 投票
1 回答
3380 浏览

r - R错误:“错误:无法组合`..1`和`..2`。”

我正在做一个研究项目并尝试可视化 OLS 模型。这是我的代码:

当我尝试运行“绘图(已注册)”时,出现错误

当我运行 rlang::last_error() 时,它说问题是

这是我的数据的链接,所以你们都可以尝试复制它:

https://drive.google.com/file/d/1yKYtD6heBfZcL87YNJtzRcAF9eF4PiFd/view?usp=sharing

0 投票
1 回答
803 浏览

r - 使用 dplyr 时出错:“namespace:vctrs”未导出对象“data_frame”

我每天都在使用 tidyverse 包,尤其是 dplyr。

今天,在运行我之前做得很好的代码时

我收到此错误消息:对象 'data_frame' 不是由 'namespace:vctrs' 导出的

我尝试更新 tidyverse,关闭我的 R 会话,甚至我的 Windows 会话,但每次运行 dplyr 函数时仍然出现此错误。

有人可以帮助我,我想我不明白这种错误。

PS:这是我的 R 会话信息:

谢谢

0 投票
0 回答
54 浏览

r - bind_rows(..., .id) 和 yearqtr 的问题

最新版本的dplyrcanbind_rows甚至带有yearqtr. 但是,当我也使用该.id参数时,我遇到了问题。例如:

最后一行的问题是该d列以一个奇怪的类结束,vctrs:::common_class_fallback而不是预期的yearqtr类。

编辑:这是一个错误吗?

0 投票
1 回答
48 浏览

r - R将excel与不兼容的列结合起来

我正在将多个 excel 文件与一对多的工作表结合起来。它们每个都有不同的列。我只对将工作表与地址信息结合起来感兴趣。对于没有地址信息的工作表,我需要在生成的组合文件中记下它。如果我遇到问题,其中一个工作表有蔬菜但没有地址,另一个有地址信息..我正在使用下面的代码将它们放在一起。在我开始工作后,我会将它们标准化并完全放置。

我收到错误消息:错误:无法组合Customer Quick REF$Order NoCH Belt$Order No . 我尝试使用 %>% mutate_all(as.character) 因为列本质上应该都是字符。关于如何解决这个问题的任何想法?或者,有没有办法跳过导入有问题的数据并在一行中显示该工作表存在问题?谢谢!