问题标签 [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.
vctrs - 如何解决运行“汽车”包的“vctrs”更新问题?
library(carData) library(car) 错误:loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) 中的“car”的包或命名空间加载失败:命名空间“vctrs”正在加载 0.2.0,但需要 >= 0.2.1
r - 如何解决“错误:名称必须是唯一的。” 在 r-package ggstatsplot 中?
问题:
我试图运行一个函数(ggwithinplot)来绘制 r 包 ggstatsplot 中的数据。但是运行这个函数花了很长时间,结果什么也没有。
所以我在它运行时关闭了这个功能。我试着等待。它没有用。所以这个问题不是时间问题。
在那之后,我想知道是不是因为我得到了大量的数据点(N=2000)。所以我尝试了另一个包含 250 个数据点的样本。这一次,我得到了这个错误:“错误:名称必须是唯一的。”
我检查了回溯:
我试过的:
- 我用谷歌搜索了这个错误。没有得到太多有用的信息。
- 我更新了 r-base 和所有 r 包。没有工作。
- 我检查了这个问题是否特定于 ggwithinplot。而且我发现 ggbetweenplot 即使在大样本(N=2000)中也能很好地工作。
- 我检查了是否是由于输入数据的问题,要求是长格式。我没有发现任何可疑之处。
- 我检查了数据框中的列名是否重复。不,所以我对“名称必须唯一”的含义感到非常困惑。
代表
数据框架
会话信息
这个问题的 Github 问题:
r - R:无法将 vctrs 包从 0.1.0 版本更新到 0.2.1
我正在寻找安装包'blob'但是当我尝试这样做时,我收到错误消息
“loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) 中的错误:正在加载命名空间 'vctrs' 0.1.0 但需要 >= 0.2.1”
我尝试使用以下两种方法均无济于事,并且找不到使它们中的任何一种工作的解决方案
1)。需要(devtools)安装版本(“vctrs”,版本=“0.2.1”)
2)。库(遥控器) install_github(“cran/blob”)
对于方法 1)。我收到错误“错误:包'vctrs'的编译失败”和方法2)。我收到错误“无法打开 URL ' https://api.github.com/repos/cran/blob/tarball/master '”
任何更新“vctrs”包、成功安装“blob”包或解决上述方法问题的替代方法将不胜感激,谢谢!
r - 如何使用可以与 c() 结合的 R vctrs 包构建对象
我试图了解如何使用向量构建对象。我认为这很简单,但是当我在对象上使用 c() 时遇到了麻烦。
我们的对象有两个属性,x 和描述符,在这种情况下都是字符串(我的对象将具有不同类型的属性)。我们已经构建了一个构造函数 new_toy_vector。我还没有在这个例子中建立一个便利函数。
由reprex 包(v0.3.0)于 2020-04-26 创建
然后我尝试用自己创建一个强制,除非由于某种原因没有定义默认方法:
有什么我想念或误解的想法吗?为什么我不能合并示例中的两个对象?
r - 部署 Shiny 应用程序打破了支点;无法指定具有非 vctrs 类型的原型
很难为此提供一个代表,因为该问题仅在我使用我的应用程序的部署版本时发生,但我希望我可以提供足够的详细信息,以便有人能够帮助我了解导致问题的原因。我正在使用 pivot_longer 在 Shiny 中按下按钮来旋转表格。我的表格有点复杂,因为表格中的某些“单元格”必须包含一个列表,不确定这是否是问题的一部分:
当我从 RStudio 运行应用程序时,这个支点工作得很好,我得到了预期的结果:
但是,在部署时(使用 DesktopDeployR 或 RInno),按下按钮时屏幕变为灰色并且应用程序挂起。这是在错误日志中:
有趣的是,gather() 工作得很好,但如果我能解决这个问题,我宁愿使用 pivot:
r - 在矩阵中使用 vctrs
我正在试验这个vctrs
包。我的实际用例在相关方面类似于主页上rational
有用的S3 向量文章中实现的类vctrs
,因为它rcrd
用于配对数据。为了清楚起见,我将使用它作为我的代表。(编辑:但是,我对理性并不特别感兴趣。)让我先粘贴相关部分:
一个使用这个的例子:
尝试在 a 中使用这样的类时出现了我的问题matrix
:
由reprex 包(v0.3.0)于 2020 年 6 月 5 日创建
我希望得到一个 3×5 矩阵,其中每个单元格包含一个来自 的值,如果是“正常”向量x
就会发生这种情况。x
相反,我得到了一个 3×5 的列表矩阵,其中vctrs
尝试使交替的行分别包含n
和d
值。
因此,我的问题是,对于这种情况,是否有可能以vctrs
“预期”的方式使用矩阵,如果可以,如何?通过实验,我感觉到这可能与实现dim.rational
and有关`dim<-.rational`
,但我无法让它发挥作用。
编辑:如果所需的矩阵不清楚(如评论中所建议的那样),我想要一个类似于以下内容的矩阵对象,我已经手动编辑了它:
这样正常的矩阵运算将起作用m
,例如
r - R中的双重调度:S4 vs vctrs库
如果我们想在 R 中实现双重调度方法,我们目前有两个选项可供选择:
- S4 方法
- vctrs 库基于 S3 的双重调度
我特别指算术运算符,例如 + 或 *。
它们在性能方面如何比较?他们的间接费用是否具有可比性?
r - R - 计算向量中的元素
有没有办法在不考虑其唯一值的情况下计算向量中的元素?例如,我有一个向量 vec <- as.vector(c("A","A","B","B","A","A","B","B"))
。我想计算向量中的元素,所以它会返回一个向量[1] 2 2 2 2
。
我试过使用包vec_count
中的函数vctrs
:
但是这个函数考虑了向量中的唯一元素,这不是我想要的。任何想法如何做到这一点?
r - 将 vctrs 构建的类放入包中时错误的双重调度方法
我创建了一个新类来使用 vctrs 打印百分比,如 https://vctrs.r-lib.org/articles/s3-vector.html中所述。当我获取 .R 文件时,它运行良好。但是当我使用 devtools 构建包时,使用 vec_arith 实现的基本操作不再起作用:
但是,类似的情况运行良好:转换很好;vec_math 也可以,可以做sum(pct(0.5, 1L) + pct(0.25, 2L))
我制作了一个可重现的示例,其中包含使用 devtools 2.3.2 和 vctrs 0.3.6 加载带有 percent 类的小包所需的代码。
- 我们使用 devtools 创建一个名为 percenterror 的新包:
在这个包的 RStudio 项目内的控制台上,我们声明依赖关系并创建一个新的 .R 文件:
- 让我们在打开的 .R 文件中复制以下代码,并使用 roxygen 标签生成 NAMESPACE :
如果我们这样做library(vctrs)
并获取此文档,
则pct(0.5) + pct(0.25)
可以正常工作。
- 但是,回到控制台,我们创建文档并加载包:
在这里,添加不再起作用:
但是找到了方法:
该方法似乎与正确的泛型相关联:
vec_arith.numeric 方法适用于 pct :
但事实并非如此,vec_arith_pct
方法不适用于 numeric :
当我们使用 rlang::last_trace() 运行错误跟踪时,我们发现该
pct + pct
操作实际上并没有转到正确的方法,甚至不关心上面定义的函数,因为vec_arith.default
用于代替vec_arith.pct
:
出了什么问题,该怎么做才能使它起作用?我已经尝试在没有 vctrs:: 调用的情况下使用 ou,导入或不导入 NAMESPACE 中的几乎所有内容,但无法找到发生了什么。
谢谢
r - `vec_arith` 未按预期调用
我在下面放置了一个简单的案例,我在双对象上定义了一个类“foo”,我希望任何涉及此类对象的算术运算都将其从其“foo”类中剥离并正常进行。
我可以部分让它工作,但不是很强大。见下文 :
我怎样才能使x * data.frame(a=1)
退货与42 * data.frame(a=1)
traceback()
不返回任何东西,所以我不确定如何调试它。