我有一个由此产生的情节:
ggplot(dt.2, aes(x=AgeGroup, y=Prevalence)) +
geom_errorbar(aes(ymin=lower, ymax=upper), colour="black", width=.2) +
geom_point(size=2, colour="Red")
Run Code Online (Sandbox Code Playgroud)
我像这样控制x轴标签:
scale_x_discrete(labels=c("0-29","30-49","50-64","65-79",">80","All")) +
Run Code Online (Sandbox Code Playgroud)
这有效,但我需要将"> 80"标签更改为"≥80".
但是"≥80"显示为"= 80".
如何显示大于或等号?
我正在使用该twang包来创建倾向得分,这些得分在二项式glm中用作权重survey::svyglm.代码看起来像这样:
pscore <- ps(ppci ~ var1+var2+.........., data=dt....)
dt$w <- get.weights(pscore, stop.method="es.mean")
design.ps <- svydesign(ids=~1, weights=~w, data=dt,)
glm1 <- svyglm(m30 ~ ppci, design=design.ps,family=binomial)
Run Code Online (Sandbox Code Playgroud)
这会产生以下警告:
Warning message:
In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?
我不确定这个消息在stats.SE上是否会更好,但总的来说我想我会先在这里尝试一下.
我知道如果变量名称中没有空格,则首选.我的情况是需要出版品质的图表,所以轴和图例需要有正确格式的标签,即带空格.因此,例如,在开发过程中,我可能会有名为"Pct.On.OAC"和Age.Group的变量,但在我的最终情节中,我需要出现"%on OAC"和"Age Group":
'data.frame': 22 obs. of 3 variables:
$ % on OAC : Factor w/ 11 levels "0","0.1-9.9",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Age Group : Factor w/ 2 levels "Aged 80 and over",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Number of Practices: int 47 5 33 98 287 543 516 222 67 14 ...
Run Code Online (Sandbox Code Playgroud)
但是当我试图绘制这些时:
ggplot(dt.m, aes(x=`% on OAC`,y=`Number of Practices`, fill=`Age Group`)) +
geom_bar() …Run Code Online (Sandbox Code Playgroud) 我有一个向量,说x只包含整数0,1和2.例如;
x <- c(0,1,0,2,0,0,1,0,0,1,0,0,0,1,0)
Run Code Online (Sandbox Code Playgroud)
由此我想提取每个"模式"中出现零次的次数.在这个简单的例子中,它自己出现三次,两次00和一次出现000,所以我想输出如下内容:
0 3
00 2
000 1
Run Code Online (Sandbox Code Playgroud)
我的实际数据集非常大(向量中1000-2000个元素),至少理论上连续零的最大数量是 length(x)
我有这个ggplot:
ggplot(dt.m, aes(x=pct.on.OAC.cont,y=Number.of.Practices, fill=Age.Group)) +
geom_bar(stat="identity",position=position_dodge()) +
geom_smooth(aes(x=pct.on.OAC.cont,y=Number.of.Practices, colour=Age.Group), se=F)
Run Code Online (Sandbox Code Playgroud)
如何增加geom_smooth绘制的线条的粗细?
下面的代码片段创建了双变量法线数据,绘制它然后绘制椭圆以及线y = x
require(ellipse); require(MASS)
mu <- c(30,30)
Sigma <- matrix(c(900,630,630,900),2,2,byrow=TRUE)
dt <- data.frame(mvrnorm(n=1000,mu,Sigma))
names(dt) <- c("x","y")
plot(dt$x,dt$y)
df_ell <- data.frame(ellipse(cor(dt$x, dt$y), scale=c(sd(dt$x),sd(dt$y)), centre=c(mean(dt$x),mean(dt$y))))
lines(df_ell)
abline(a=0,b=1)
Run Code Online (Sandbox Code Playgroud)
由于协方差结构和相等的平均值,线y = x应该穿过椭圆的长轴.
在方形图形窗口中,一切似乎都很好:

但是,如果调整窗口大小以使其不再是正方形,则椭圆似乎将其自身定位为远离线条:

造成这种情况的原因是什么?是预期的行为吗?
更新:
我试过在https://rdrr.io/snippets/上运行代码,它运行正常.因此,我怀疑我的R安装有问题,但是非常担心这种情况可能会发生而不会出现错误或警告.调查此问题的最佳步骤是什么?我在Ubuntu 18.04和gbm 2.1.4上运行R 3.4.4
我正在将增强模型拟合到数据集中,并注意到一些奇怪的预测.这是一个最小的工作示例.请注意,这只是我正在使用的数据集的一小部分示例
mydata <- structure(list(Count = c(1L, 3L, 1L, 4L, 1L, 0L, 1L, 2L, 0L, 0L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 0L, 2L, 3L, 1L, 4L, 3L, 0L, 4L, 1L, 2L, 1L, 1L, 0L, 2L, 1L, 4L, 1L, 5L, 3L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 2L, 0L, 0L, 1L, 1L, 1L, 0L, 3L, 1L, 1L, 0L, 3L, 1L, 1L, 1L, 1L, 2L, 3L, 2L, 2L, 0L, 0L, 3L, …Run Code Online (Sandbox Code Playgroud) 我有2个向量,例如:
A <- c(1,2,NA,NA,NA,NA,7)
B <- c(NA,NA,3,4,NA,NA,7)
Run Code Online (Sandbox Code Playgroud)
我想将它们组合起来,以便生成矢量
1,2,3,4,NA,NA,-1
Run Code Online (Sandbox Code Playgroud)
那是
当位置i的任一矢量中只有1个值(比如说X)存在(另一个是NA)时,新的矢量应该在位置i取值X.
当两个值在位置i处为NA时,新矢量应在位置i处取值NA
当两个向量在位置i处具有值时,新向量应在位置i处取值-1.
我可以通过循环轻松完成此操作,但是在大型数据集上它非常慢,所以任何人都可以提供快速的方法来执行此操作吗?
我有一个ggplot,它还显示了一个图例:
ggplot(dt.m, aes(x=pct.on.OAC.cont,y=Number.of.Practices, fill=Age.Group)) +
geom_bar(stat="identity",position=position_dodge())
Run Code Online (Sandbox Code Playgroud)
当我添加另一行时,我还得到了第二个传奇:
geom_smooth(aes(x=pct.on.OAC.cont,y=Number.of.Practices, colour=Age.Group), se=F, alpha=0.5)
Run Code Online (Sandbox Code Playgroud)
如何防止第二个图例显示?
这是测试的正常输出:
attach(airquality)
pw <- pairwise.wilcox.test(Ozone, Month, p.adj = "bonf")
pw
data: Ozone and Month
May Jun Jul Aug
Jun 1.0000 - - -
Jul 0.0003 0.1414 - -
Aug 0.0012 0.2591 1.0000 -
Sep 1.0000 1.0000 0.0074 0.0325
Run Code Online (Sandbox Code Playgroud)
我最近不得不用10个级别的因子进行测试.虽然pairwise.wilcox.test的下三角形格式是有用和简洁的,但我认为以类似的方式将它安排到Tukey HSD输出中是很方便的,其中列出每个成对组合以及它的相关p值.这是我尝试这样做的:
pw.df <- as.data.frame(pw$p.value)
pw.diff <- vector("character")
pw.pval <- vector("numeric")
for (i in 1:ncol(pw.df) )
for (j in i:length(pw.df) ) {
pw.diff <- c(pw.diff,paste(colnames(pw.df[i]),"-",rownames(pw.df)[j]))
pw.pval <- c(pw.pval,pw.df[j,i])
}
# order them by ascending p value
v <- order(pw.pval,decreasing = F)
pw.df …Run Code Online (Sandbox Code Playgroud)