问题描述
我正在尝试使用函数来更改某个地方的小标题列的值。但是,我没有管理它。也许有人可以帮忙。我举了一个简单的示例:
noga2 <- tibble(a = c(1,12),b=c(12,3))
iot_test <- function(data,selcol) {
data <- data %>% mutate(UQ(selcol):= if_else(str_length((selcol)) == 2,"TA","0"))
return(data)
}
iot_test(noga2,"a")
这是结果:
a b
<chr> <dbl>
1 0 12
2 0 3
但是我们的想法是只更改列a中的第二个值。
谢谢 伦格
解决方法
如果您将ensym
用作字符传递,则可以在selcol
上使用selcol
。然后,您需要双击以取消对noga2 <- tibble(a = c(1,12),b = c(12,3))
iot_test <- function(data,selcol) {
selcol <- ensym(selcol)
mutate(data,!!selcol := if_else(str_length(!!selcol) == 2,"TA","0"))
}
iot_test(noga2,"a")
#> # A tibble: 2 x 2
#> a b
#> <chr> <dbl>
#> 1 0 12
#> 2 TA 3
所在位置的引用。
{maxResults:1}