gpt4 book ai didi

r - 图层中的子集参数不再适用于 ggplot2 >= 2.0.0

转载 作者:行者123 更新时间:2023-12-03 01:03:43 27 4
gpt4 key购买 nike

我更新到最新版本ggplot2并在层中打印子集时遇到问题。

library(ggplot2)
library(plyr)
df <- data.frame(x=runif(100), y=runif(100))
ggplot(df, aes(x,y)) + geom_point(subset=.(x >= .5))

这些代码行在 1.0.1 版本中有效但不在 2.0.0 中。它抛出一个错误Error: Unknown parameters: subset .

我找不到官方更改日志或如何对特定层进行子集化的方法。特意因为这个plyr解决方案没有很好的记录,我想我在堆栈溢出的某个地方找到了它。

最佳答案

根据ggplot2 2.0.0代码中的注释:

#' @param subset DEPRECATED. An older way of subsetting the dataset used in a
#' layer.

可以在这里找到:https://github.com/hadley/ggplot2/blob/34d0bd5d26a8929382d09606b4eda7a36ee20e5e/R/layer.r

现在的一种方法是:

library(ggplot2)
library(plyr)
df <- data.frame(x=runif(100), y=runif(100))
ggplot(df, aes(x,y)) + geom_point(data=df[df$x>=.5,])

或者这个,(但要注意“非标准评估”(NSE):)

library(ggplot2)
library(plyr)
df <- data.frame(x=runif(100), y=runif(100))
ggplot(df, aes(x,y)) + geom_point(data=subset(df,x>=.5))

我认为这是最安全的,因为它没有 NSE 或美元符号字段选择器:

library(ggplot2)
library(plyr)
df <- data.frame(x=runif(100), y=runif(100))
ggplot(df, aes(x,y)) + geom_point(data=df[df[["x"]]>=.5,])

但是还有很多其他人使用管道等......

关于r - 图层中的子集参数不再适用于 ggplot2 >= 2.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588232/

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