相关疑难解决方法(0)

如何使用dplyr将所选列重命名为新列名作为字符串

我有以下几点:

library(tidyverse)
df <- structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5), Sepal.Width = c(3.5, 
3, 3.2, 3.1, 3.6), Petal.Length = c(1.4, 1.4, 1.3, 1.5, 1.4)), .Names = c("Sepal.Length", 
"Sepal.Width", "Petal.Length"), row.names = c(NA, 5L), class = c("tbl_df", 
"tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)

这看起来像这样:

> df
# A tibble: 5 × 3
  Sepal.Length Sepal.Width Petal.Length
*        <dbl>       <dbl>        <dbl>
1          5.1         3.5          1.4
2          4.9         3.0          1.4
3          4.7         3.2          1.3
4          4.6         3.1          1.5
5          5.0         3.6          1.4
Run Code Online (Sandbox Code Playgroud)

我想要做的是替换Sepal.LengthPetal.Length附加的字符串 …

r dplyr

10
推荐指数
3
解决办法
1万
查看次数

在dplyr 0.7+功能中重命名

我在使用dplyr重命名函数中的列时遇到困难.我已经找到了关于非标准评估和enquo的使用的有用帖子(例如,http://dplyr.tidyverse.org/articles/programming.html 和 在自定义dplyr函数中更改结果变量的名称).最终目标是使用该函数汇总每个组,然后将列重命名为比原始变量名更有意义的列.

这是一个简单的例子,除了注释掉的行外,它都有效.

library(tidyverse)

myfunc <- function(df, groupvar, colvar, grouplab, collab) {
  groupvar <- enquo(groupvar)
  colvar <- enquo(colvar)
  grouplab <- enquo(grouplab)  # quo_name instead?
  collab <- enquo(collab)  # quo_name instead?

t <- df %>%
  select(!!groupvar, !!colvar) %>%
  group_by(!!groupvar, !!colvar) %>%
  summarise(
    Frequencies = length(!!colvar),
    Percentages = length(!!colvar) / nrow(df)
    ) %>%
  mutate(
    Frequencies = scales::comma(Frequencies),
    Percentages = scales::percent(Percentages)
    ) #%>%
# rename(
#    (!!grouplab) = !!groupvar,  # add a more descriptive grouping var label
#    (!!collab) …
Run Code Online (Sandbox Code Playgroud)

r function dplyr nse rlang

4
推荐指数
2
解决办法
1276
查看次数

标签 统计

dplyr ×2

r ×2

function ×1

nse ×1

rlang ×1