我想找到R: ddply repeats yearly cumulative data中解释的一堆列的累积总和。也就是说,
ddply(mydf, "year", transform,
cumsum1 = cumsum(myvalue1),
cumsum2 = cumsum(myvalue2))
我尝试了以下内容。
1.处理累积金额的目的地名称列表和源名称列表。
2.Ran ddply(mydf,"year",transform,dstnList=srcList)
3.获取以下错误:
"arguments imply differing number of rows: 1385, 280
In addition: Warning message:
In eval(expr, envir, enclos) : NAs introduced by coercion"
1.创建以下功能。
findCumSum<-function(srcdf,columnlist){
for (i in 1:length(columnlist)){
ddply(srcdf,"g_id",transform,cumsum(names(srcdf)[columnlist[i]]))
}
srcdf
}
2.使用srcList列表调用该函数。 findCumSum(mydf,srcIdxList)
;
我收到以下错误
"Error in eval(expr, envir, enclos) : object 'srcdf' not found"
让我知道如何解决问题。
答案 0 :(得分:3)
也许是这样的?
dat <- data.frame(x = rep(letters[1:2],each = 10),
y1 = 1:20,
y2 = 20:1)
> ddply(dat,.(x),colwise(cumsum))
x y1 y2
1 a 1 20
2 a 3 39
3 a 6 57
4 a 10 74
5 a 15 90
6 a 21 105
7 a 28 119
8 a 36 132
9 a 45 144
10 a 55 155
11 b 11 10
12 b 23 19
13 b 36 27
14 b 50 34
15 b 65 40
16 b 81 45
17 b 98 49
18 b 116 52
19 b 135 54
20 b 155 55