首页 > 解决方案 > 生成删除小于 0 和大于 1 的值的新变量

问题描述

目前,我已经生成变量pscore <- reg1$fit并使用以下代码创建了重叠直方图:

hist(pscore[data$smoke==1],breaks=40,col=col.alpha("red",.5),freq=FALSE, 
     xlim=c(-0.025,0.529),ylim=c(0,10),xlab="Propensity Score",ylab="",main="")
hist(pscore[data$smoke==0],breaks=20,col=col.alpha("blue",.5),freq=FALSE, 
     ylim=c(0,9),add=TRUE)

注意变量smoke是二进制的

我现在正在尝试创建另一个直方图,但 pscores 在 0 和 1 之间

pscore2 <- reg1$fit>=0 & reg1$fit <=1

R 会读取它,但是当使用新的 pscore 运行直方图代码时,会导致错误。

Error in hist.default(pscore2[data$smoke == 1], breaks = 20, col = col.alpha("blue",  : 
  'x' must be numeric
Error in hist.default(pscore2[data$smoke == 0], breaks = 20, col = col.alpha("blue",  : 
  'x' must be numeric

所以不确定还有什么其他方法可以创建一个只有 0 到 1 之间的值的新 pscore。

标签: r

解决方案


你应该这样做:

pscore2 <- reg1$fit[reg1$fit >=0 & reg1$fit <=1]

希望能帮助到你。


推荐阅读