组合命名数值向量和 data.frame

bic*_*ton 1 r

我有一个数据框pr和一个向量f11

pr <- structure(list(value = c(21, 4, 75, 
14), site = c("ra", "ce", "ze", 
"ste")), row.names = c("1", 
"2", "3", "4"), class = "data.frame")

f11 <- c(ze = 54, ra = 7,ce = 63, ste = 36)
Run Code Online (Sandbox Code Playgroud)

我想为每个站点提供此输出(站点的顺序并不重要):

      value           site

     (21-7)/100      re
     (4-63)/100      ce
     (75-54)/100      ze
     (14-36)/100      ste
Run Code Online (Sandbox Code Playgroud)

Cet*_*ttt 5

f11您可以使用 来对向量进行子集化pr$site。所以最终的解决方案可能是

pr$value <- (pr$value - f11[pr$site]) / 100
Run Code Online (Sandbox Code Playgroud)