计算R中变量的增量
我必须计算一个时间间隔(t2-t1)内变量计算R中变量的增量,r,function,loops,plyr,R,Function,Loops,Plyr,我必须计算一个时间间隔(t2-t1)内变量m的增量。 以下是我的数据帧的虚拟版本: df <- expand.grid(m = do.breaks(c(1, 10), 5), sample = c("A", "B", "C", "D")) df$t <- rep(1:6, 4, ordered = TRUE) df$d_m <- NA 我哪里错了?通过示例将数据拆分: sdf <- split(df, df$sample) 最后,将
m
的增量。
以下是我的数据帧的虚拟版本:
df <- expand.grid(m = do.breaks(c(1, 10), 5),
sample = c("A", "B", "C", "D"))
df$t <- rep(1:6, 4, ordered = TRUE)
df$d_m <- NA
我哪里错了?通过
示例将数据拆分:
sdf <- split(df, df$sample)
最后,将各个组件重新组合在一起
df <- do.call(rbind, sdf)
do.breaks
我相信是来自格子的。如果这是正确的,那么请将library(lattice)
添加到您的代码中,这样人们就不必自己去弄清楚。您希望每个示例中d_m的最后一个值是什么?无论如何,在m
中创建一组“中断”可能有更简单的方法。回到问题:will notdf$d_m抱歉Dason,没有重新确认do.brakes来自lattice,最后一个d_m应该是NACarl,diff()很好,但我无法在ddply中工作。这很好,唯一的问题是现在必须做同样的事情,但我需要的不是m[I+1]和m[I]之间的差异,而是它们的平均值。。
sdf <- lapply(sdf, function(x) transform(x, d_m = c(NA, diff(m))))
df <- do.call(rbind, sdf)
> df
m sample t d_m
A.A.1 1.0 A 1 NA
A.A.2 2.8 A 2 1.8
A.A.3 4.6 A 3 1.8
A.A.4 6.4 A 4 1.8
A.A.5 8.2 A 5 1.8
A.A.6 10.0 A 6 1.8
B.B.7 1.0 B 1 NA
B.B.8 2.8 B 2 1.8
B.B.9 4.6 B 3 1.8
B.B.10 6.4 B 4 1.8
B.B.11 8.2 B 5 1.8
B.B.12 10.0 B 6 1.8
C.C.13 1.0 C 1 NA
C.C.14 2.8 C 2 1.8
C.C.15 4.6 C 3 1.8
C.C.16 6.4 C 4 1.8
C.C.17 8.2 C 5 1.8
C.C.18 10.0 C 6 1.8
D.D.19 1.0 D 1 NA
D.D.20 2.8 D 2 1.8
D.D.21 4.6 D 3 1.8
D.D.22 6.4 D 4 1.8
D.D.23 8.2 D 5 1.8
D.D.24 10.0 D 6 1.8