我有以下数据帧(df)
start end
1 14379 32094
2 151884 174367
3 438422 449382
4 618123 621256
5 698271 714321
6 973394 975857
7 980508 982372
8 994539 994661
9 1055151 1058824
. . .
. . .
. . .
Run Code Online (Sandbox Code Playgroud)
带有数值(vec)的长向量.
我想在每一行中添加另一列,其中包含相应位置的值的平均值vec.例如,第一行将具有mean(vec[14379:32094]).我试过玩transform但却无法完成这个简单的任务.
Dir*_*tel 71
这是一个非常标准的用例apply():
R> vec <- 1:10
R> DF <- data.frame(start=c(1,3,5,7), end=c(2,6,7,9))
R> DF$newcol <- apply(DF,1,function(row) mean(vec[ row[1] : row[2] ] ))
R> DF
start end newcol
1 1 2 1.5
2 3 6 4.5
3 5 7 6.0
4 7 9 8.0
R>
Run Code Online (Sandbox Code Playgroud)
plyr如果您愿意,也可以使用,但这里不需要超越基础R的功能.
| 归档时间: |
|
| 查看次数: |
112899 次 |
| 最近记录: |