我是一名统计学家和R新手,他们正在学习很多使用RStudio。我有一个导入的数据框,其数据为长形式,用于纵向平衡研究设计的混合效应ANOVA。我的数据有以下标题:治疗,受试者,日期,年龄和体积。我可以单独使用Age组或使用以下代码单独使用Treatment组进行绘图:
lineplot.CI(mri$Date,mri$Les.V.PD, mri$Age,main="Mean Lesion Volume by Age Group on PD Sequences",xlab="MRI timepoints (months post treatment)", ylab="Lesion Volume(cm^3)")
我想绘制,使用lineplot.CI与x轴上的日期,4行:2年治疗,6年治疗,2年对照和6年对照。此代码仅按年龄组生成线图:
lineplot.CI(mri$Date,mri$Les.V.PD,mri$Age,subset=mri$Treatment %in% c("MSC","Control"),main="Mean Lesion Volume by Age Group on PD Sequences", xlab="MRI timepoints (months post treatment)", ylab="Lesion Volume(cm^3)")
此代码给出与上述代码相同的折线图:
lineplot.CI(mri$Date,mri$Les.V.PD,mri$Age,subset= .(mri$Treatment == "MSC" | mri$Treament == "Control"),main="Mean Lesion Volume by Age Group on PD Sequences",xlab="MRI timepoints (months post treatment)", ylab="Lesion Volume(cm^3)")
我也尝试过这段代码的各种演绎:
lineplot.CI(mri$Date,mri$Les.V.PD,mri$Age,subset(mri,Treatment == "MSC"|Treatment =="Control"),main="Mean Lesion Volume by Age Group on PD Sequences",xlab="MRI timepoints (months post treatment)", ylab="Lesion Volume(cm^3)")
或
lineplot.CI(mri$Date,mri$Les.V.PD,mri$Age,subset(mri, !(Treatment == "MSC"|Treatment == "Control")),main="Mean Lesion Volume by Age Group on PD Sequences",xlab="MRI timepoints (months post treatment)", ylab="Lesion Volume(cm^3)")
并收到以下错误:
Error in subset.default(mri$Treatment == "MSC" | mri$Treament == "Control") :
参数"子集"缺少,没有默认
Error in match.arg(type) : 'arg' must be NULL or a character vector
我知道sciplot包文档,该子集包含在lineplot.CI中,但我见过的所有示例都显示了subset = NULL。我宁愿继续使用lineplot.CI,因为自动插入错误栏以及我不熟悉ggplot2这一事实。
由于
答案 0 :(得分:1)
您可以使用:
lineplot.CI(xField, yField, group=gField, data=subset(dataSource,
field1=="value1" | field2=="value2"))
该问题的作者尝试使用带有参数“subset”的lineplot.CI命令。取而代之的是,可以将参数“data”与子集的值一起使用。
所以,而不是使用
lineplot.CI(...,subset =(datasource,select expression),...)
这个想法是使用:
lineplot.CI(...,data = subset(datasource,select expression),...)
这种替代方式对我有用。
答案 1 :(得分:0)
我遇到了同样的问题...经过一些研究后,我发现lineplot.CI documentation不仅缺少大量有用的信息,而且还提供了一些功能,就好像它们是它的一部分,当它们外部方法实际上,可以组合与lineplot.CI,以达到特定的结果。 subset 是R环境的基本功能,因此它不依赖于lineplot.CI。 This link提供了有关它的更多信息,但可以在R包中提供的离线文档中找到更好/更深入的描述。在R命令行上输入
help(subset)
你会看到在数据框上应用它的有趣方法。
将新创建的子集分配给lineplot.CI的 data 参数,您将获得所需的结果。例如(根据您的数据):
df <- subset(
mri,
Treatment %in% c("MSC", "Control"),
select = c( Treatment, Subject, Date, Age, Volume )
)
lineplot.CI(
data = df,
x.factor = Date,
response = Les.V.PD,
group = Age,
main="Mean Lesion Volume by Age Group on PD Sequences",
xlab="MRI timepoints (months post treatment)",
ylab="Lesion Volume(cm^3)"
)