我多次尝试用图中的符号替换标签列(Item1,Item2,Item3,...)。我使用过ltm包。这是代码:
fsc <- factor.scores(rasch(LSAT))
plot(fsc, include.items = TRUE)
我想用绘图中的黑色项目符号(符号)替换标签列,然后将它们重命名为A1,A2,A3,A4,A5。在这种情况下是否可以这样做?如果是,是否可以使它们变色?
答案 0 :(得分:3)
您可以根据plot.fscores()
如果您不想以编程方式执行此操作,则可以使用dump("plot.fscores")
的函数转储并在“dumpdata.R”中进行更改。
library(ltm)
dump("plot.fscores")
## now we can make the following changes to 'dumpdata.R':
## 1. change the function name. I used 'myPlot.fscores'
## 2. add formal arguments to the argument list so we can pass them
## to text(). I added
text.labels = NULL
col.labels = NULL
## 3. on line 28, change the entire line to
text(Beta, rep_len(0L, length(Beta)), labels = text.labels, col = col.labels)
现在我们可以尝试一下......
fsc <- factor.scores(rasch(LSAT))
myPlot.fscores(fsc, include.items = TRUE,
text.labels = rownames(fsc$coef), col.labels = seq_len(nrow(fsc$coef)))
否则你可以写一些代码......
## copy plot.scores for modification
ff <- plot.fscores
## add an argument to ff() - I use 'text.labels' to avoid multiple matching
fm <-formals(ff)
formals(ff) <- append(fm, list(text.labels = NULL), length(fm)-1)
## change the stripchart() call to a call to text() with out new argument
body(ff)[[6]][[3]][[2]][[4]][[6]] <- quote(
text(Beta, rep_len(0, length(Beta)), labels = text.labels)
)
## see if it works
fsc <- factor.scores(rasch(LSAT))
ff(fsc, include.items = TRUE, text.labels = rownames(fsc$coef))
我会让你对那个颜色有所了解。因为我对递归相当可怕,除了手动调查函数体之外,我没有更简单的方法来查找body(ff)[[6]][[3]][[2]][[4]][[6]]
。我知道有一个递归函数用于定位函数体的各个部分,但我现在不记得它的名称并且没有成功搜索。