dx <- data.frame(CMPD = c("cmpd1","cmpd1","cmpd1","cmpd1","cmpd2","cmpd2",
"cmpd2","cmpd2","cmpd3","cmpd3","cmpd3","cmpd3"),
MRM = c("309.0/121.1","309.0/121.1","309.0/90.1",
"309.0/90.1","305.2/140.3","305.2/140.3","300.5/107.3",
"300.5/107.3","404.8/126.0","404.8/126.0","401.5/91.0",
"401.5/91.0"),
RESP = c(123.4,234.5,345.6,456.7,567.8,678.9,789.0,12.4,
23.5,34.6,45.7,56.8))
Run Code Online (Sandbox Code Playgroud)
-
>dx
CMPD MRM RESP
1 cmpd1 309.0/121.1 123.4
2 cmpd1 309.0/121.1 234.5
3 cmpd1 309.0/90.1 345.6
4 cmpd1 309.0/90.1 456.7
5 cmpd2 305.2/140.3 567.8
6 cmpd2 305.2/140.3 678.9
7 cmpd2 300.5/107.3 789.0
8 cmpd2 300.5/107.3 12.4
9 cmpd3 404.8/126.0 23.5
10 cmpd3 404.8/126.0 34.6
11 cmpd3 401.5/91.0 45.7
12 cmpd3 401.5/91.0 56.8
Run Code Online (Sandbox Code Playgroud)
我想是能够基于所述的组合的独特性与该数据进行工作CMPD并且MRM(例如行1,2,则行3,4等)
让我把你介绍给我的朋友,包裹plyr.
该软件包可以轻松使用分割,应用和组合数据的通用策略.最有用的功能之一是ddply将数据帧作为输入,并将数据帧减少为输出.您可以指定要拆分的唯一组合,以及要应用的功能,并ddply完成剩下的工作.
一个值得了解的好地方plyr是Hadley的网站或他在"统计软件期刊"上的文章.StackOverflow上有关于plyr的数百个答案.只需按照plyr -tag或ddply -tag进行操作即可.
这里有些例子:
library(plyr)
Run Code Online (Sandbox Code Playgroud)
提取均值:
> ddply(dx, .(CMPD, MRM), numcolwise(mean))
CMPD MRM RESP
1 cmpd1 309.0/121.1 178.95
2 cmpd1 309.0/90.1 401.15
3 cmpd2 300.5/107.3 400.70
4 cmpd2 305.2/140.3 623.35
5 cmpd3 401.5/91.0 51.25
6 cmpd3 404.8/126.0 29.05
Run Code Online (Sandbox Code Playgroud)
或者总和:
> ddply(dx, .(CMPD, MRM), numcolwise(sum))
CMPD MRM RESP
1 cmpd1 309.0/121.1 357.9
2 cmpd1 309.0/90.1 802.3
3 cmpd2 300.5/107.3 801.4
4 cmpd2 305.2/140.3 1246.7
5 cmpd3 401.5/91.0 102.5
6 cmpd3 404.8/126.0 58.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |