计算动态变量中列名的字符数

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

我不明白为什么这段代码不起作用:

testdf <- data.frame(a=c("Hello", "Hi", "Howy"))
varname <- "a"
testdf %>% mutate(b=nchar({{varname}}))

它返回字母中的字符数

a

      a b
1 Hello 1
2    Hi 1
3  Howy 1

当第一列的名称保存到变量中时,如何计算一列中的字符数并将值分配给另一列?

r dynamic tidyverse mutate
1个回答
0
投票

由于

varname
是一个字符,您可以使用
.data
代名词:

testdf <- data.frame(a = c("Hello", "Hi", "Howy"))
varname <- "a"

library(dplyr, warn = FALSE)

testdf %>%
  mutate(b = nchar(.data[[varname]]))
#>       a b
#> 1 Hello 5
#> 2    Hi 2
#> 3  Howy 4
© www.soinside.com 2019 - 2024. All rights reserved.