将列添加到R中的数据框

Dav*_*d B 54 r dataframe

我有以下数据帧(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的功能.

  • 你在说什么?这本身就是对待每个人.怎么会这样呢? (2认同)