我们如何改变包含现有值的新列名

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

mpg 的中位数是 19.2。

在下一行中,我想将此信息(例如“19.2”)添加到新的变异列名称“median_dich”中。所以最后新的列名称应该是

median_dich19.2

我知道在这种特殊情况之外该怎么做。 我的问题是直接获取中值并将其粘贴到新的变异列名称中?

到目前为止我尝试过的:

#TRY 1
library(dplyr)
mtcars %>% 
  mutate(median_mpg = median(mpg)) %>% 
  mutate(glue("median_dich{median_mpg}") = ifelse(mpg > median_mpg, 1, 0))

#TRY 2
library(dplyr)
library(rlang)

mtcars %>%
  mutate(median_mpg = median(mpg)) %>%
  mutate(!!paste0("median_dich_", median_mpg) := ifelse(mpg > median_mpg, 1, 0))

#TRY 3
library(dplyr)
library(rlang)
library(glue)

mtcars %>%
  mutate(median_mpg = median(mpg)) %>%
  mutate(!!sym(glue("median_dich_{median_mpg}")) := ifelse(mpg > median_mpg, 1, 0))
r dplyr rlang mutate r-glue
1个回答
0
投票

很复杂,但这满足您的需求吗?

library(dplyr)
library(tidyr)
library(tibble)

mtcars %>% 
  mutate(temp = rownames(.),
  median_mpg = median(mpg),
  median_dich = ifelse(mpg > median_mpg, 1, 0)) %>%
  pivot_longer(median_dich) %>%
  mutate(name = paste0(name, median_mpg)) %>%
  pivot_wider(names_from = name,
              values_from = value) %>%
  column_to_rownames("temp")
© www.soinside.com 2019 - 2024. All rights reserved.