gpt4 book ai didi

r - 在 data.table 包中使用 .BY 和 .EACHI

转载 作者:行者123 更新时间:2023-12-04 20:07:15 27 4
gpt4 key购买 nike

我试图更好地了解 data.table 中的一些特殊变量是如何产生的。打包工作。其中之一是 .BY陈述。我还没有看到很多人使用它的例子,但文档暗示这在绘图中很有用。

例如,以下代码在 data.table 1.9.3 中似乎工作得很好(显示每个物种的图并为每个图分配正确的标题)。 :

iris <- data.table(iris)
iris[,plot(Sepal.Length ~ Sepal.Width, main = unlist(.BY)), by = Species]

虽然此代码无法按我的预期工作:
iris[ , plot(Sepal.Length ~ Sepal.Width, main = .BY), by = Species]

为什么这两个不同?从评论来看,这似乎不是 data.table 1.9.2 中的问题。 .使用 .BY 在哪些其他方面可能有用陈述?这与 .EACHI 相比有何不同?陈述?

最佳答案

.BY是一个名为 list包含 by 的值变量。

将未命名列表传递给 main将工作,但是命名列表将失败(与 data.table 完全无关)

plot(1, main = list(1))
# works....
plot(1, main = list(s=1))
# Error in title(...) : invalid graphics parameter

最近对 data.table 1.9.3 的提交修复了一个与`.BY 中的命名有关的错误
Closes bug #5415. .BY gets names attribute set properly今年四月。

如果您有 1 个以上的“by”变量,您将希望能够连接一些方式

也许
iris[,plot(Sepal.Length~Sepal.Width,main=do.call(paste,.BY)),by=Species]

会起作用(除非您有一列名为 collapse !)
EACHI与此完全无关。请阅读 NEWS for data.table 1.9.3为了理解这一点。

关于r - 在 data.table 包中使用 .BY 和 .EACHI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24153174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com