从特定行子集改变 R 中的列

问题描述 投票:0回答:0

我正在尝试基于其他三列在数据框中创建一个新列:父列、特定指标列和组合的父特定指标的值。

给定:

  parent specific val
1      a        x  10
2      a        y  11
3      a        z  12
4      b        x  20
5      b        y  21
6      b        z  22
7      c        x  30
8      c        y  31
9      c        z  32

我想创建一个新列,比如 px_val(选择每个父项的 x 值),以便生成的数据框是:

  parent specific val px_val
1      a        x  10     10
2      a        y  11     10
3      a        z  12     10
4      b        x  20     20
5      b        y  21     20
6      b        z  22     20
7      c        x  30     30
8      c        y  31     30
9      c        z  32     30

测试 df 的代码:

df <- data.frame(
  parent=c('a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'),
  specific=c('x', 'y', 'z', 'x', 'y', 'z', 'x', 'y', 'z'),
  val=c(10, 11, 12, 20, 21, 22, 30, 31, 32)
)

我想过可能会遍历数据框,将给定父项的 x 值存储在一个变量中并将其分配给每个父项。但是感觉应该有更优雅的解决方案吧?

r dataframe mutate
© www.soinside.com 2019 - 2024. All rights reserved.