通过使用基于R中的变化数据集的比率来标准化数据

时间:2017-07-26 04:33:55

标签: r plyr percentage normalize

我试图通过将所有值转换为百分比来规范化Y比例。 因此,我需要将列中的每个数字除以该列中的第一个数字。在Excel中,这相当于锁定一个单元格A1 / $ A1,B1 / $ A1,C1 / $ A1然后D1 / $ D1,E1 / $ D1 ......

数据需要首先满足四个标准(时间,治疗,浓度和类型),并且每次新治疗时参考值都会发生变化。每种处理具有4种浓度(0,0.1,2和50)。我想将与每个浓度相关的值除以参考值(当浓度等于0时)。

棘手的部分是该参考值每4行更改一次。

我尝试过使用ddply:

`MasterTable <- read.csv("~/Dropbox/Master-table.csv")`
  MasterTable <- ddply(MasterTable, .(Time, Type, Treatment), transform, pc=(Value/Value$Concentration==0)) 

但这根本不起作用。任何帮助都会非常感激!

我的数据文件可以在这里找到: Master-table

谢谢!

1 个答案:

答案 0 :(得分:1)

dplyr非常有效:

library(dplyr)
result <- group_by(MasterTable, Time, Type, Treatment) %>%
  mutate(pc = Value / Value[1])