相关疑难解决方法(0)

dplyr - mutate:使用动态变量名

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

来自虹膜的示例数据:

library(dplyr)
iris <- tbl_df(iris)
Run Code Online (Sandbox Code Playgroud)

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

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

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

for(i in 2:5) {
    iris <- multipetal(df=iris, n=i)
}
Run Code Online (Sandbox Code Playgroud)

但是,由于mutate认为varname是一个文字变量名,因此循环只创建一个新变量(称为varname)而不是四个(称为petal.2 - petal.5).

如何将mutate()动态名称用作变量名?

r r-faq dplyr

131
推荐指数
6
解决办法
9万
查看次数

标签 统计

dplyr ×1

r ×1

r-faq ×1