vapply中的符号输出

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

我正在使用vapply获取字符向量,例如:

vapply(X = 1:16,
       FUN = function(X) {paste0("status", X)}, 
       FUN.VALUE = character(1))

#>  [1] "status1"  "status2"  "status3"  "status4"  "status5"  "status6" 
#>  [7] "status7"  "status8"  "status9"  "status10" "status11" "status12"
#> [13] "status13" "status14" "status15" "status16"

包括输出。

说,我不想返回字符变量,而是想使用sym()返回符号(或对象名称),例如:

rlang::sym("status1")
#> status1

但是如果我想返回符号作为vapply输出怎么办?我需要使用FUN.VALUE = ...参数指定输出值类型,但我找不到如何执行此操作的良好示例,并且使用FUN. VALUE = symbol(1)FUN.VALUE = name(1)的不同变体的尝试均失败了。

所需的输出看起来像:

[1] status1  status2  status3  status4  status5  status6 
r apply base
1个回答
0
投票

我们可以使用lapply可以用as.symbol转换为符号

lapply(X = 1:16,
   FUN = function(X) {as.symbol(paste0("status", X))})

根据?name

对于is.name和is.symbol,值TRUE或FALSE的长度为一的逻辑向量。

© www.soinside.com 2019 - 2024. All rights reserved.