这是一个有点奇怪的请求,我不知道函数是否一定存在,但我希望有可能存在。基本上,我有很多变量,我正在寻找结果,因此我的典型数据将如下所示
Sample Daylength Expt Line Protein
1 LD L K 100
2 SD S R 150
3 LD L R 200
4 SD S K 120
5 LD L K 95
6 SD S R 160
7 LD L R 195
8 SD S K 130
所以我有3个因变量(daylength,expt,line)和1个蛋白质结果变量。然而,我想在图中看到的是比较显示L和S实验条的蛋白质水平
我用来绘制ggplot2条形图的代码示例是:
ggplot(data=results, aes(x=daylength, y=protein, fill=line)) + geom_bar(stat="identity", position=position_dodge())
这将给我一个图表,显示LD和SD实验的结果与提供单独系列的线。但是,这并不能解释我的第三个因素expt
。
通常在Excel中,我可以操作表格,将LD / L,LD / S,SD / L和SD / S的结果作为单独的标题,并使用它们作为X因子创建图形,但是这样可能是艰巨的,特别是如果我要重写表,保存它并每次在R中运行它。我想看看是否有一个简单的方法来操作R中的表以使用一些命令将所有内容分组,或者将这两个因素组合起来每次直接绘制图形,特别是因为在某些情况下我可能会感兴趣结合不同的因素。
Sample Daylength/Expt Line Protein
1 LD/L K 100
2 SD/S R 150
3 LD/L R 200
4 SD/S K 120
5 LD/L K 95
6 SD/S R 160
7 LD/L R 195
8 SD/S K 130
答案 0 :(得分:1)
您可以在因素上使用互动运算符:
:
library(ggplot2)
head(CO2) # using builtin data
# Plant Type Treatment conc uptake
#1 Qn1 Quebec nonchilled 95 16.0
#2 Qn1 Quebec nonchilled 175 30.4
#3 Qn1 Quebec nonchilled 250 34.8
#4 Qn1 Quebec nonchilled 350 37.2
#5 Qn1 Quebec nonchilled 500 35.3
#6 Qn1 Quebec nonchilled 675 39.2
qplot(conc, uptake, color=Type:Treatment, data=CO2)
答案 1 :(得分:0)
您可以使用粘贴:
创建Daylength / Expt列dl_ex <- paste(results$Daylength, results$Expt, sep='/')
(如果R抱怨因素或给你奇怪的数字结果,请在列上使用as.character
)
然后将其添加到数据集
results2 <- results[, -c("Daylength", "Expt")]
results2$DE <- dl_ex
但是,如果您想按某些属性对数据进行分组,那么如果您熟悉SQL语法,则应该查看R&lt; plyr或sqldf。