R 使用一个预测因子设置逻辑回归的ggplot,并通过多个结果(或列)循环

R 使用一个预测因子设置逻辑回归的ggplot,并通过多个结果(或列)循环,r,plot,ggplot2,logistic-regression,R,Plot,Ggplot2,Logistic Regression,我是R方面的新手,有一个与ggplot相关的问题。下面是一个虚拟数据框,其中一列包含预测值xvar,多列包含二分结果yvar1、yvar2、yvar3 df <- data.frame("xvar"=c(0,100,200,300,400,500,600,1000),"yvar1"= c(0,0,0,0,0,0,1,1),"yvar2"=c(0,0,1,1,1,1,1,1),"yvar3"=c(0,0,1,1,0,1,1,1)) 如何使用ggplot2设置循环?如果您确实想循环,可以使用

我是R方面的新手,有一个与ggplot相关的问题。下面是一个虚拟数据框,其中一列包含预测值xvar,多列包含二分结果yvar1、yvar2、yvar3

df <- data.frame("xvar"=c(0,100,200,300,400,500,600,1000),"yvar1"= c(0,0,0,0,0,0,1,1),"yvar2"=c(0,0,1,1,1,1,1,1),"yvar3"=c(0,0,1,1,0,1,1,1))

如何使用ggplot2设置循环?

如果您确实想循环,可以使用Lappy

但是,我认为重新塑造数据并将所有图形显示在一起可能会更好

# reshaping data
require(reshape2)
df.melt <- melt(df, id.var='xvar')
# first variation, using facets 
ggplot(df.melt, aes(xvar, value)) + 
  geom_point() + 
  stat_smooth(method="glm", family="binomial", se=TRUE) +
  facet_grid(variable~.)
# second variation using colors
ggplot(df.melt, aes(xvar, value)) + 
  geom_point() + 
  stat_smooth(aes(color = variable, fill = variable), 
              method="glm", family="binomial", se=TRUE, size = 1.2) 

以下代码是我的最佳选项plotHistFunc吗
ggplot(df, aes(x=xvar, y=yvar1)) + geom_point() + 
  stat_smooth(method="glm", family="binomial", se=TRUE)
p <- lapply(names(df)[-1], function(nm){
  ggplot(df, aes_string(x="xvar", y=nm)) + geom_point() + 
    stat_smooth(method="glm", family="binomial", se=TRUE)
})
print(p)
# reshaping data
require(reshape2)
df.melt <- melt(df, id.var='xvar')
# first variation, using facets 
ggplot(df.melt, aes(xvar, value)) + 
  geom_point() + 
  stat_smooth(method="glm", family="binomial", se=TRUE) +
  facet_grid(variable~.)
# second variation using colors
ggplot(df.melt, aes(xvar, value)) + 
  geom_point() + 
  stat_smooth(aes(color = variable, fill = variable), 
              method="glm", family="binomial", se=TRUE, size = 1.2)