gpt4 book ai didi

r - 将参数强制转换为最简单的类型

转载 作者:行者123 更新时间:2023-12-04 10:29:06 24 4
gpt4 key购买 nike

在使用包shinyplumber 处理用户输入时,通常需要将字符参数转换为数字或逻辑参数。

我想自动执行,有什么有效的方法吗?

预期的(这个或类似的):

convert_args <- ...

fun <- function(a, b, c, d){
convert_args()
dplyr::lst(a, b, c , d)
}

fun("na","true","1","foo")
#> $a
#> [1] NA
#>
#> $b
#> [1] TRUE
#>
#> $c
#> [1] 1
#>
#> $d
#> [1] "foo"

最佳答案

一种选择是使用 readr::parse_guess,顾名思义,它会尝试猜测字符向量的类型。

convert_args <- function(x) {
lapply(x, readr::parse_guess)
}

convert_args(c("NA","true","1","foo"))
#[[1]]
#[1] NA

#[[2]]
#[1] TRUE

#[[3]]
#[1] 1

#[[4]]
#[1] "foo"

当我们有 "na"

时,这不会直接起作用
readr::parse_guess("na")
#[1] "na"

但正如@Moody_Mudskipper 提到的,它可以通过在 parse_guess 中指定 na 参数来解决

readr::parse_guess("na", c("na", "NA"))
#[1] NA

关于r - 将参数强制转换为最简单的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56705523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com