代码之家  ›  专栏  ›  技术社区  ›  llewmills

使用dplyr[复制]在函数中创建新的变量名

  •  0
  • llewmills  · 技术社区  · 4 年前

    我想用 dplyr::mutate() 在数据帧中创建多个新列。列名及其内容应动态生成。

    来自iris的示例数据:

    library(dplyr)
    iris <- as_tibble(iris)
    

    我创建了一个函数来修改我的新列 Petal.Width 变量:

    multipetal <- function(df, n) {
        varname <- paste("petal", n , sep=".")
        df <- mutate(df, varname = Petal.Width * n)  ## problem arises here
        df
    }
    

    现在我创建一个循环来构建我的列:

    for(i in 2:5) {
        iris <- multipetal(df=iris, n=i)
    }
    

    然而,由于mutate认为varname是一个字面变量名,因此循环只创建了一个新变量(称为varname),而不是四个(称为花瓣.2-花瓣.5)。

    我怎样才能得到 mutate() 将我的动态名称用作变量名?

    0 回复  |  直到 2 年前