我试图将R图保存为EPS文件,但我对图的以下组件有问题 - 灰色透明多边形(透明黑=灰色效果):
polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)
Run Code Online (Sandbox Code Playgroud)
将这个代码保存为PDF而不是EPS时,这行代码可以正常工作.看起来EPS不支持透明度?我还有其他选择吗?
以下是完整情节的代码:
postscript(file="Figure.eps", width=5.5, height=5.5, onefile=F, horizontal=F)
ts(t(data.frame(initial_timepoint, second_timepoint, third_timepoint, final_timepoint)))->obj
obj[,-c(3,7)]->obj1
plot(obj1, plot.type="single", lwd=0.6, xaxs="i",yaxs="i",xlab="",ylab="LV ejection fraction (%)",xaxt='n',yaxt='n',ylim=c(0,70),col="black")
axis(1, at=c(1,2,3,4), labels=c("1","2","3","4"),cex.axis=1)
axis(2, at=seq(0,70,10), labels=c("0%","10%","20%","30%","40%","50%","60%","70%"),cex.axis=1, las=1)
abline(v=c(2,3),lwd=0.6,lty=2)
stderr <- function(x) sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
avg<-c(mean(initial_timepoint,na.rm=T), mean(second_timepoint,na.rm=T), mean(third_timepoint,na.rm=T), mean(final_timepoint,na.rm=T))
err<-c(stderr(initial_timepoint), stderr(second_timepoint), stderr(third_timepoint), stderr(final_timepoint))
my.count <- c(1,2,3,4)
my.count.rev <- c(4,3,2,1)
y.polygon.6 <- c((avg+err*1.96)[my.count],(avg-err*1.96)[my.count.rev])
x.polygon <- c(my.count, my.count.rev)
polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)
lines(avg,col="black",lwd=0.8,lty=3)
lines((avg+err*1.96),lwd=0.8,lty=3)
lines((avg-err*1.96),lwd=0.8,lty=3)
dev.off()
Run Code Online (Sandbox Code Playgroud) 我有以下生存数据
library(survival)
data(pbc)
#model to be plotted and analyzed, convert time to years
fit <- survfit(Surv(time/365.25, status) ~ edema, data = pbc)
#visualize overall survival Kaplan-Meier curve
plot(fit)
Run Code Online (Sandbox Code Playgroud)
以下是Kaplan-Meier图的结果
我将以这种方式进一步计算1年,2年,3年的生存率:
> summary(fit,times=c(1,2,3))
Call: survfit(formula = Surv(time/365.25, status) ~ edema, data = pbc)
232 observations deleted due to missingness
edema=0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 126 12 0.913 0.0240 0.867 0.961
2 112 12 0.825 0.0325 0.764 0.891
3 80 26 0.627 0.0420 0.550 …Run Code Online (Sandbox Code Playgroud) 我有以下代码导致类似表格的输出
lvs <- c("normal", "abnormal")
truth <- factor(rep(lvs, times = c(86, 258)),
levels = rev(lvs))
pred <- factor(
c(
rep(lvs, times = c(54, 32)),
rep(lvs, times = c(27, 231))),
levels = rev(lvs))
xtab <- table(pred, truth)
library(caret)
confusionMatrix(xtab)
confusionMatrix(pred, truth)
confusionMatrix(xtab, prevalence = 0.25)
Run Code Online (Sandbox Code Playgroud)
我想将输出的以下部分导出为.csv表格
Accuracy : 0.8285
95% CI : (0.7844, 0.8668)
No Information Rate : 0.75
P-Value [Acc > NIR] : 0.0003097
Kappa : 0.5336
Mcnemar's Test P-Value : 0.6025370
Sensitivity : 0.8953
Specificity : 0.6279 …Run Code Online (Sandbox Code Playgroud) 我有以下型号:
coxph(Surv(fulength, mortality == 1) ~ pspline(predictor))
Run Code Online (Sandbox Code Playgroud)
其中,fulength是一个随访的持续时间(包括死亡率),预测因子是死亡率的预测因子.
上面命令的输出是这样的:
coef se(coef) se2 Chisq DF p
pspline(predictor), line 0.174 0.0563 0.0562 9.52 1.00 0.002
pspline(predictor), nonl 4.74 3.09 0.200
Run Code Online (Sandbox Code Playgroud)
如何绘制这个模型,以便在y轴上获得95%置信区间和风险比的漂亮曲线?我的目标是类似于此:

我有这个饼图
pie(c(1,2,1),col=c("black","white","gray"))
Run Code Online (Sandbox Code Playgroud)
我想保持白色和黑色的颜色,但想要改变黑色到白色渐变的灰色,黑色扇区旁边的区域以黑色开始,然后逐渐变为灰色,然后逐渐变为灰色在到达白色扇区之前变成白色.所以灰色会被这样的东西取代:
有什么想法我怎么能这样做?任何意见,将不胜感激.
我有原始数据,我希望看到什么样的截止水平导致截止水平以上的观察百分比.这是模拟:
data<-rnorm(100,50,30)
prop.table(table(data>10))
prop.table(table(data>20))
prop.table(table(data>30))
prop.table(table(data>40))
prop.table(table(data>50))
prop.table(table(data>60))
prop.table(table(data>70))
prop.table(table(data>80))
prop.table(table(data>90))
Run Code Online (Sandbox Code Playgroud)
这是输出:
FALSE TRUE
0.1 0.9
FALSE TRUE
0.16 0.84
FALSE TRUE
0.29 0.71
FALSE TRUE
0.36 0.64
FALSE TRUE
0.51 0.49
FALSE TRUE
0.61 0.39
FALSE TRUE
0.75 0.25
FALSE TRUE
0.86 0.14
FALSE TRUE
0.91 0.09
Run Code Online (Sandbox Code Playgroud)
但这是一种粗略而低效的方式,因为你会同意.为无限地计算每个截止值的相应百分比的Instread,我想构建一个表示该关系的图,其中X轴表示所有可能的截止水平的范围,Y轴表示从0到100的百分比.类似于这样的:
请忽略绘图的轴标签等,这只是提供一般的例子.有什么建议?
我有一个如下所示的数据框:
DF<-as.data.frame(t(replicate(150, sample(seq(100, 1000),15,replace=T))),rownames=T)
Run Code Online (Sandbox Code Playgroud)
我想将各行绘制为密度,以便得到具有多个密度曲线的图.我知道我可以一行一行地做到这一点:
plot(density(DF[,1]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,2]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,3]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,4]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,5]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,6]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,7]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,8]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,9]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,10]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,11]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,12]),col = adjustcolor('black', alpha.f = .5))
lines(density(DF[,13]),col = adjustcolor('black', …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的数据向量:
dates<-c("2014-11", "2014-12", "2015-01", "2015-02", "2015-03", "2015-04")
Run Code Online (Sandbox Code Playgroud)
我试图将其转换为可识别的日期格式,但没有运气:
as.Date(dates,"%Y-%m")
[1] NA NA NA NA NA NA
Run Code Online (Sandbox Code Playgroud)
我怀疑问题在于没有指定日期.
如何解决这个问题呢?
我将来有这个样本 10 年回归。
date<-as.Date(c("2015-12-31", "2014-12-31", "2013-12-31", "2012-12-31"))
value<-c(16348, 14136, 12733, 10737)
#fit linear regression
model<-lm(value~date)
#build predict dataframe
dfuture<-data.frame(date=seq(as.Date("2016-12-31"), by="1 year", length.out = 10))
#predict the futurne
predict(model, dfuture, interval = "prediction")
Run Code Online (Sandbox Code Playgroud)
我怎样才能为此添加置信带?
如果我们使用以下生存数据...
library(survival)
data(pbc)
#model to be plotted and analyzed, convert time to years
fit <- survfit(Surv(time/365.25, status) ~ edema, data = pbc)
#visualize overall survival Kaplan-Meier curve
plot(fit)
Run Code Online (Sandbox Code Playgroud)
...并以这种方式进一步计算1、2、3年的生存率:
> summary(fit,times=c(1,2,3))
Run Code Online (Sandbox Code Playgroud)
...输出是这样的:
Call: survfit(formula = Surv(time/365.25, status) ~ edema, data = pbc)
232 observations deleted due to missingness
edema=0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 126 12 0.913 0.0240 0.867 0.961
2 112 12 0.825 0.0325 0.764 0.891
3 80 26 0.627 0.0420 0.550 …Run Code Online (Sandbox Code Playgroud) 我有一个我想使用以下表格进行分析confusionMatrix:
value<-cbind(c(rnorm(100,500,90),rnorm(100,800,120)))
genotype<-cbind(c(rep("A",100),rep("B",100)))
df<-cbind(value,genotype)
df<-as.data.frame(df)
colnames(df)<-c("value","genotype")
df$value<-as.numeric(as.character(df$value))
table(value>600,genotype)
Run Code Online (Sandbox Code Playgroud)
我想分析输出的敏感性和特异性,confusionMatrix但它不起作用:
confusionMatrix(table(value>600,genotype))
Run Code Online (Sandbox Code Playgroud)
如果我做错了什么有什么想法吗?
我有一个数据框,其中包含几个带日期的列
col1<-seq( as.Date("2011-07-01"), by=20, len=10)
col2<-seq( as.Date("2011-09-01"), by=7, len=10)
col3<-seq( as.Date("2011-08-01"), by=1, len=10)
data.frame(col1,col2,col3)
Run Code Online (Sandbox Code Playgroud)
数据框如下所示:
col1 col2 col3
1 2011-07-01 2011-09-01 2011-08-01
2 2011-07-21 2011-09-08 2011-08-02
3 2011-08-10 2011-09-15 2011-08-03
4 2011-08-30 2011-09-22 2011-08-04
5 2011-09-19 2011-09-29 2011-08-05
6 2011-10-09 2011-10-06 2011-08-06
7 2011-10-29 2011-10-13 2011-08-07
8 2011-11-18 2011-10-20 2011-08-08
9 2011-12-08 2011-10-27 2011-08-09
10 2011-12-28 2011-11-03 2011-08-10
Run Code Online (Sandbox Code Playgroud)
我试图将它们合并为一列,以便
A.每行只剩下最低(最早)的日期,而其他日期则被忽略
1 2011-07-01
2 2011-07-21
3 2011-08-03
4 2011-08-04
5 2011-08-05
6 2011-08-06
7 2011-08-07
8 2011-08-08
9 2011-08-09
10 2011-08-10 …Run Code Online (Sandbox Code Playgroud) 众所周知,R很容易处理大数据.我遇到的问题是将R中执行的分析结果放在表格中以供发布.
我想在一个例子中解释一下.我们有这个简单的数据集:
value<-cbind(c(rnorm(100,500,90),rnorm(100,800,120)))
genotype<-cbind(c(rep("A",100),rep("B",100)))
gender<-rep(c("M","F","F","F"),50)
df<-cbind(value,genotype,gender)
df<-as.data.frame(df)
colnames(df)<-c("value","genotype","gender")
df$value<-as.numeric(as.character(df$value))
Run Code Online (Sandbox Code Playgroud)
我想分析一个科学项目的数据.要提取我需要的信息,我必须这样做:
> quantile(subset(df,gender=="M")$value)
0% 25% 50% 75% 100%
323.6955 523.1237 655.6593 828.7438 1045.0406
> quantile(subset(df,gender=="F")$value)
0% 25% 50% 75% 100%
233.3721 520.1101 633.8767 802.2277 1149.3072
> wilcox.test((subset(df,gender=="M")$value),(subset(df,gender=="F")$value))$p.value
[1] 0.924699
> table(df$genotype)
A B
100 100
> table(df$gender)
F M
150 50
> prop.test(50,150)$p.value
[1] 6.311983e-05
> table(df$genotype,df$gender)
F M
A 75 25
B 75 25
> prop.table(table(df$genotype,df$gender),2)
F M
A 0.5 0.5
B 0.5 0.5
> prop.test(c(75,25),c(125,50))$p.value
[1] 0.2990147
Run Code Online (Sandbox Code Playgroud)
嗯,这给了我所需要的所有信息,但是从创建出版质量表还有很长的路要走.为此,我必须将结果中的数字复制/粘贴到Excel中.最终产品是这样的:
问题是复制/粘贴是不方便的,可能会因大量数据而变得乏味,并且会产生人为错误的可能性.有没有办法直接在R中"编程"或"编码"这个表,这样我就可以运行代码并将输出保存为 …
r ×13
plot ×3
csv ×1
dataframe ×1
density-plot ×1
lm ×1
pie-chart ×1
postscript ×1
regression ×1
splines ×1
transparency ×1