使用dplyr处理df

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

我的df就像:

    L   T        m       EI      f.1      f.4      f.6      f.5      f.9
1  10 1.0 6.190004 9988.997  6.59710 13.38665 20.55083 28.25382 36.63822
6  10 3.5 6.190004 9988.997 12.11441 24.33067 36.74911 49.46745 62.58052
19 25 1.0 6.190004 9988.997  2.57757  5.16730  7.78128 10.43146 13.12981
24 25 3.5 6.190004 9988.997  4.79088  9.58822 14.39848 19.22824 24.08453

现在我想用ddplyr处理这个df,如下面的步骤,转义循环结构。

  • 使用函数创建新的命名列:le。? = fun(f。?)(其中?是1,4,6,5,9。列名是le.?。跟随le的数字可能会在另一个过程中改变。
  • 根据参数enfoo求解方程L, T, f.?,每个方程的根与df绑定

我在这个过程中遇到的问题是:

  1. 如何切割用f.?命名的列并使用ddplyr创建新列?
  2. 如何切割列qazxsw poi与相应的列qazxsw poi在哪里?相同的数字?
r plyr
1个回答
0
投票

如果我正确理解了这个问题,那么这可能有所帮助

请注意,为了演示目的,我在f.?列上应用了一个简单的函数来创建le.?列。即f.*

在下面的代码中,您可以通过调整le.*参数将此简单函数替换为您定义的函数。

l.* = (f.*) / 2

输出是:

funs

样本数据:

library(dplyr)
df %>%
  mutate_at(vars(f.1:f.9), funs(le=./2)) %>%
  rename_at(vars(f.1_le:f.9_le), funs(gsub("[a-zA-Z]+[.](\\d+)[_](\\S+)","\\2.\\1",.)))
© www.soinside.com 2019 - 2024. All rights reserved.