我不明白为什么这段代码不起作用:
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
当第一列的名称保存到变量中时,如何计算一列中的字符数并将值分配给另一列?
由于
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