我有这样的情节:
fake = data.frame(x=rnorm(100), y=rnorm(100))
ggplot(data=fake, aes(x=x, y=y)) + geom_point() + theme_bw() +
geom_vline(xintercept=-1, linetype=2, color="red") +
annotate("text", x=-1, y=-1, label="Helpful annotation", color="red")
Run Code Online (Sandbox Code Playgroud)

如何将带注释的文本旋转90度,使其与参考线平行?
与此问题类似,我想更改图例中的默认"a",而不是完全删除它,我想用标签本身替换它.也就是说,图例的第一行应该有一个标有"se"的彩色图标,右边是全名"setosa".
iris$abbrev = substr( iris$Species, 1, 2 )
ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, shape =
Species, colour = Species)) + geom_text(aes(label = abbrev))
Run Code Online (Sandbox Code Playgroud)
Plotly允许您将鼠标悬停在散点图上的某个点上时显示文本字段.当用户将鼠标悬停或点击时,是否可以显示与每个点相关联的图像?我大多只是使用网络界面,但我可以改为ggplot从R 推
我正在使用具有0-6级别的分类预测变量运行逻辑回归.默认情况下,R将0级视为参考组.
如何在不重命名级别的情况下告诉R使用级别3而不是级别0作为参考?
我试图在R中绘制以下隐式公式:
1 = x ^ 2 + 4*(y ^ 2)+ x*y
这应该是一个椭圆.我想随机抽样x值,然后根据这些值生成图表.
这是一个相关的线程,但那里的解决方案似乎特定于3D案例.这个问题对Googling的抵抗力是我所期望的,所以也许R语言会将隐式公式称为其他东西.
提前致谢!
如何在midsR的包中的类对象中的每个插补数据集上执行操作(如子集化或添加计算列)mice?我希望结果仍然是一个mids对象.
编辑:示例
library(mice)
data(nhanes)
# create imputed datasets
imput = mice(nhanes)
Run Code Online (Sandbox Code Playgroud)
插补数据集存储为列表列表
imput$imp
Run Code Online (Sandbox Code Playgroud)
其中只有针对给定变量的插补的观察行.
原始(不完整)数据集存储在此处:
imput$data
Run Code Online (Sandbox Code Playgroud)
例如,如何创建一个按照chl/2每个插补数据集计算的新变量,从而产生一个新mids对象?
我想在coxph具有基于样条项的时间相关系数的模型的情况下将估计的风险比绘制为时间的函数.我使用函数创建了时间相关系数tt,类似于此示例直接来自?coxph:
# Fit a time transform model using current age
cox = coxph(Surv(time, status) ~ ph.ecog + tt(age), data=lung,
tt=function(x,t,...) pspline(x + t/365.25))
Run Code Online (Sandbox Code Playgroud)
调用会survfit(cox)导致错误,该错误survfit无法理解带有tt术语的模型(如Terry Therneau在2011年所述).
您可以使用提取线性预测器cox$linear.predictors,但我需要以某种方式提取年龄,而不是简单地提取每个时间.因为tt在事件时间拆分数据集,所以我不能只将输入数据帧的列与coxph输出匹配.另外,我真的想绘制估计函数本身,而不仅仅是观察数据点的预测.
我仍然坚持这个.我一直在深入研究这个对象:
spline.obj = pspline(lung$age)
str(spline.obj)
# something that looks very useful, but I am not sure what it is
# cbase appears to be …Run Code Online (Sandbox Code Playgroud) 说这是我的数据集:
> ( fake = data.frame( id=as.character(18:22), x=rnorm(5), y=rnorm(5) ) )
id x y
1 18 1.93800377 0.67515777
2 19 1.28241814 -0.04164806
3 20 -1.58919444 -0.50885536
4 21 -0.08127943 -1.90003188
5 22 0.78134213 0.17693039
Run Code Online (Sandbox Code Playgroud)
我想要一个x对比的散点图,y其中绘图形状是id变量.我试过这个:
ggplot( data=fake, aes( x=x, y=y, shape=id) ) + geom_point() +
scale_shape_manual(values=as.character(fake$id)) + theme_bw()
Run Code Online (Sandbox Code Playgroud)

似乎只有第一个字符id被用作绘图形状.我怎样才能使用整个字符串?
我想使用ggplot的sec.axis选项生成第二个X轴(称为Z),显示转换Z = X + sqrt(X ^ 2--X)。这种变换通常不是单调的,而是在我的应用程序可能达到的X范围内(X> 1)是单调的。
我尝试了以下方法:
x1 = seq(1, 3.5, .1)
y = rnorm( n = length(x1) )
d = data.frame( x1, y )
library(ggplot2)
ggplot( d, aes( x=x1, y=y ) ) + geom_point() +
scale_x_continuous( sec.axis = sec_axis( ~ . + sqrt(.^2 - .) ) )
Run Code Online (Sandbox Code Playgroud)
导致和错误以及警告:
Error in f(..., self = self) :
transformation for secondary axes must be monotonous
In addition: Warning message:
In sqrt(.^2 - .) : …Run Code Online (Sandbox Code Playgroud) 包含一个或多个因子变量的多变量回归模型的R输出不会自动包括模型中整个因子变量的显着性的似然比检验(LRT).例如:
fake = data.frame( x1=rnorm(100), x2=sample(LETTERS[1:4],
size=100, replace=TRUE), y=rnorm(100) )
head(fake)
x1 x2 y
1 0.6152511 A 0.7682467
2 -0.8215727 A -0.5389245
3 -1.3287208 A -0.1797851
4 0.5837217 D 0.9509888
5 -0.2828024 C -0.9829126
6 0.3971358 B -0.4895091
m = lm(fake$y ~ fake$x1 + fake$x2)
summary(m)
Run Code Online (Sandbox Code Playgroud)
如果我们想测试x2模型中整个变量的重要性,我们可以拟合简化模型m.red并使用LRT:
m.red = lm(fake$y ~ fake$x1)
anova(m, m.red, test="LRT")
Run Code Online (Sandbox Code Playgroud)
但是如果你在模型中有很多因子变量,那么一遍又一遍地做这个就变得荒谬了.我不得不相信有一些内置的方法吗?
可能重复:
R:如何将字符串转换为变量名?
在R中,我正在编写一个for循环,它将迭代地创建变量名,然后为每个变量赋值.
这是一个简化版本.目的是根据迭代变量i的值创建变量的名称,然后用NA值填充新变量.
(我只是在下面1:1迭代,因为问题发生与循环本身无关,而是与变量的创建和分配方式有关.)
for (i in 1:1) {
#name variable i "Variablei"
varName = paste("Variable", as.character(i), sep="")
#fill variable with NA values
varName = rep(NA, 12)
print(varName)
print(Variable1)
}
Run Code Online (Sandbox Code Playgroud)
现在,varName打印出来
[1] NA NA NA NA NA NA NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
找不到和Variable1.
我在某种程度上理解为什么这是错误的.在第一行中,varName成为一个向量,其唯一的条目是字符串"Variable1".然后重新分配varName以保存NA值.因此,当我尝试打印Variable1时,它不存在.
我认为更普遍的问题是任务与平等.在第一行中,我希望varName 等于新生成的字符串,但在下一行中,我希望将varName 分配给 NA值向量.
创造这种区别的最简单方法是什么?我也愿意采用完全不同的,更好的方式来解决这个问题.
编辑:更改标题因为我错误地描述了问题.
我想生成一个ggplot其中X和Y满足以下约束的整个区域被着色:
(XY)/(X + Y-1)> 2
做这个的最好方式是什么?