我有一个问题,改变图形格式的图形。我在绘图中使用的数据是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对象。
如何更改格式,使iit与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")
但是我想要m.out1图,我的问题是:我如何才能得到m.out1中的对象。拜托有人能帮帮我吗。
发布于 2021-07-13 05:09:53
您的问题是试图绘制一个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
希望这能帮上忙。如果您能够提供我们可以用来解决您的问题的示例代码,肯定会更容易。
https://stackoverflow.com/questions/68362617
复制相似问题