根据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,])
但是还有很多其他人使用管道等技术...