如何在 R 中的一行上方和下方对数据进行子集化?
How to subset data above and below a line in R?
我有一个包含 x 和 y 值的数据框。
我有一条定义了斜率和截距的自定义线。 不是回归。
如何从线上方的数据框中取子集值?
我想在数据框中创建一个新列,其中包含一个表示“线上”和“线下”的分类变量。
可重现的例子:
set.seed(12)
x<-runif(100,min=1,max=700)
y<-runif(100,min=1,max=350)
df<-data.frame(x,y)
ggplot(df, aes(x=x,y=y)) +
geom_point() +
geom_abline(aes(intercept=187.835,slope=-0.309), color="red")
创建 ifelse
语句:
df <- df %>%
mutate(new = ifelse(y > 187.185 - 0.309*x, "above", "below"))
df %>%
ggplot(aes(x=x,y=y,color = new)) +
geom_point() +
geom_abline(aes(intercept=187.835,slope=-0.309), color="red")
您还可以使用 filter
进行过滤:
df %>%
filter(new == "above")
我有一个包含 x 和 y 值的数据框。
我有一条定义了斜率和截距的自定义线。 不是回归。
如何从线上方的数据框中取子集值?
我想在数据框中创建一个新列,其中包含一个表示“线上”和“线下”的分类变量。
可重现的例子:
set.seed(12)
x<-runif(100,min=1,max=700)
y<-runif(100,min=1,max=350)
df<-data.frame(x,y)
ggplot(df, aes(x=x,y=y)) +
geom_point() +
geom_abline(aes(intercept=187.835,slope=-0.309), color="red")
创建 ifelse
语句:
df <- df %>%
mutate(new = ifelse(y > 187.185 - 0.309*x, "above", "below"))
df %>%
ggplot(aes(x=x,y=y,color = new)) +
geom_point() +
geom_abline(aes(intercept=187.835,slope=-0.309), color="red")
您还可以使用 filter
进行过滤:
df %>%
filter(new == "above")