gpt4 book ai didi

r - 将带破折号的 quosure 转换为字符串?

转载 作者:行者123 更新时间:2023-12-04 14:46:48 30 4
gpt4 key购买 nike

当我做:

> quo(DLX6-AS1) 

输出是:
<quosure>
expr: ^DLX6 - AS1
env: global

在破折号周围插入空格。

当我尝试将其转换为字符串时,我得到:
quo(DLX6-AS1) %>% quo_name

"DLX6 - AS1"

或者
quo(DLX6-AS1) %>% rlang::quo_name

或者
quo(`DLX6-AS1`) %>% rlang::quo_name

Error: Can't convert a call to a string

我怎样才能在我的函数中使用带破折号的字符串?该函数接受一个基因名称并在数据框中查找该行,但其中一些基因由破折号连接:
geneFn <- function(exp.df = seurat.object@data, gene = SOX2) {

gene <- enquo(gene)

exp.df <- exp.df[as_name(gene), ]

}

> geneFn(DLX6-AS1)

谢谢!

以前在这里问过这个问题: https://github.com/r-lib/rlang/issues/770 ,但它没有回答如何实际执行此操作。

最佳答案

你有什么版本的rlang?对我来说这有效:

quo(`DLX6-AS1`) %>% quo_name()
#> [1] "DLX6-AS1"

当列名有特殊字符时,您确实需要使用反引号,否则它们将被解释为代码。

请注意,建议使用 as_name()as_label()而不是 quo_name() ,后者是一个误导性的用词不当,将来可能会被弃用。

关于r - 将带破折号的 quosure 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879075/

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