【问题标题】:How can you change plots into ggplot format?如何将绘图更改为 ggplot 格式?
【发布时间】:2021-07-15 04:04:26
【问题描述】:

我在更改 ggplot 格式的绘图时遇到问题。我在 plot 中使用的数据是 match.obj。 match.obj 的相关信息

使用此代码绘制对象时:

plot(match.obj,type = "hist") 

我收到了以下图片。

正如我使用 fortify 更改数据类型以使其与 ggplot 兼容:

my_data <- fortify(POD_dataset) # data for ggplot use

它给了我一个错误。

Fehler: data 必须是一个数据框,或者其他可以被强制转换的对象 fortify(),不是具有 matchit 类的 S3 对象。

如何更改格式以使其与 ggplot 兼容?

因此,我将借助我的代码使我的问题更加清晰。我的问题在最后。

m.out1<-matchit(formula = ps.formula,data = POD_dataset,
                   distance = POD_dataset$PS,
                   method = "nearest" , replace = FALSE,
                   caliper = .1*sd(logitPS),ratio = 1)
POD_dataset$PS <- m.out1$distance
summary(m.out1$distance)
m.out1
summary(m.out1)


library("MatchIt")
matches <- as.data.frame(m.out1$match.matrix)
colnames(matches) <- c("matched_unit")
matches$matched_unit <- as.numeric(
  as.character(matches$matched_unit))
matches$treated_unit <-as.numeric(rownames(matches))
matches.only <- matches[!is.na(matches$matched_unit),]
head(matches.only)
POD_dataset[POD_dataset$id  %in% as.numeric(matches.only[2,]),]

我使用这个(下面的)代码来创建正常的情节。我得到了如下所示的正常直方图。

plot(m.out1,type = "hist")

但我想在 ggplot 中绘制 m.out1,我的问题是:如何在 ggplot 中获取对象 m.out1。拜托,谁能帮帮我。

【问题讨论】:

  • 很遗憾,您提供的信息不是很有用。为了帮助我们帮助您,您能否通过分享您的数据样本来重现您的问题? ?见how to make a minimal reproducible example。只需在控制台中输入dput(NAME_OF_DATASET) 并将以structure(.... 开头的输出复制并粘贴到您的帖子中。

标签: r


【解决方案1】:

您的问题是您尝试绘制 matchit 对象。这个对象基本上是一个不同项目的列表。因此,您需要选择要绘制的项目。

我使用文档中的一个示例来说明如何将结果放入数据框中。

library(MatchIt)
data("lalonde")

# Default: 1:1 NN PS matching w/o replacement
m.out1 <- matchit(treat ~ age + educ + race + nodegree +
                    married + re74 + re75, data = lalonde)
m.out1
summary(m.out1)

# Select the table you want to use for plotting and save it as a separate object.

df <- m.out1$X

我希望这会有所帮助?。如果您能提供我们可以用来解决您的问题的示例代码,那肯定会更容易。

【讨论】:

  • 感谢您的回复。我在上面编辑了我的问题并包含了代码以使其更清晰。你能帮我解决我的问题吗?
  • 我担心这段代码是不可重现的,即我不能在没有数据集的情况下在 R 中运行它。你需要提供数据,然后你的ps.formula
猜你喜欢
  • 2022-08-15
  • 2023-02-22
  • 2021-01-26
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多