Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算R中变量的增量_R_Function_Loops_Plyr - Fatal编程技术网

计算R中变量的增量

计算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) 最后,将

我必须计算一个时间间隔(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)
最后,将各个组件重新组合在一起

df <- do.call(rbind, sdf)

do.breaks
我相信是来自格子的。如果这是正确的,那么请将
library(lattice)
添加到您的代码中,这样人们就不必自己去弄清楚。您希望每个示例中d_m的最后一个值是什么?无论如何,在
m
中创建一组“中断”可能有更简单的方法。回到问题:will not
df$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