我正在对导入的STATA数据集进行逻辑回归。
其中一个变量是二元变量,但是作为原子导入。我在导入后将此变量从原子更改为因子。执行此更改时,R会自动将值从0和1更改为1和2。
谁在乎 - 它运作正常? 是的,直到我需要使用ggplot绘制平滑的线条。 在这里,我需要使用as.numeric()以获得我的绘图中的平滑线。因为我使用as.numeric,所绘制的值现在介于1和2之间,而不是0和1。 如果我不使用as.numeric(),则不会出现平滑线。
你能帮我解决这个问题吗?
下面的代码重新创建了问题:
ID <- rep(1:10)
BIN <- rep(0:1, 10)
INDEPENDENT <- runif(10, min=1, max=100)
df <- as.data.frame.matrix(cbind(ID, BIN, INDEPENDENT))
# Please stop and inspect the values under BIN before running next line
df$BIN <- as.factor(df$BIN)
# Please reinspect the BIN values after running the as.factor line
df$BIN <- factor(df$BIN, levels = c(0,1), label = c("No", "Yes"))
library(ggplot2)
ggplot(df, aes(INDEPENDENT, as.numeric(BIN)))+
geom_point()+
geom_smooth(method = "loess")+
ylab("Now I have to write this annoying line explaining that: \n 1=No
2=Yes")
答案 0 :(得分:2)
我认为这解决了你的密谋问题:
library(ggplot2)
ID <- rep(1:10)
BIN <- rep(0:1, 10)
INDEPENDENT <- runif(10, min=1, max=100)
df <- as.data.frame.matrix(cbind(ID, BIN, INDEPENDENT))
df$BIN <- factor(df$BIN, levels = c(0,1), label = c("No", "Yes"))
ggplot(df, aes(INDEPENDENT, BIN))+
geom_point()+
geom_smooth(aes(y = as.numeric(BIN)), method = "loess")