针对R中的多个列按顺序将第一个值标准化

时间:2019-09-25 13:40:35

标签: r dplyr normalization plyr

我下面有代码可以将ID组中的值标准化为第一个时间点值。我可以一次对一列(“ Value1”)执行此操作,但是如何对数据框中的所有列(Value1,Value2和Value3)执行此操作?

ID <- c(rep("A", 4), rep("B", 3), rep("C", 3))
Time <- c(10, 20, 30, 40, 10, 20, 30, 10, 20, 30)
Value1 <- sample(1:100, 10)
Value2 <- sample(1:100, 10)
Value3 <- sample(1:100, 10)
dat <- cbind(ID, Time, Value1, Value2, Value3)

newDat <- dat %>%
  arrange(Time) %>%
  group_by(ID) %>%
  mutate(ratio = Value1/first(Value1))

0 个答案:

没有答案