【发布时间】:2023-03-12 07:12:01
【问题描述】:
我需要在 R 中使用 deparse(...) 进行解析,在所有情况下都返回长度为 1 的向量。但是对于以下内容,我得到一个长度为 2 的向量:
> deparse(factor(All_cause_death, levels= c('Dead', 'Alive')) ~ Age_in_years + Systolic_Blood_pressure, backtick= TRUE)
[1] "factor(All_cause_death, levels = c(\"Dead\", \"Alive\")) ~ Age_in_years + "
[2] " Systolic_Blood_pressure"
如果我稍微缩短第一个变量名,我确实会得到长度为 1 的预期输出:
> deparse(factor(Death, levels= c('Dead', 'Alive')) ~ Age_in_years + Systolic_Blood_pressure, backtick= TRUE)
[1] "factor(Death, levels = c(\"Dead\", \"Alive\")) ~ Age_in_years + Systolic_Blood_pressure"
在上面的代码中,我通过将“All_cause_death”更改为“Death”将输入缩短了 10 个元素。有趣的是,如果我在输入末尾将输入缩短 10 个元素(或更多),我不会得到长度为 1 的向量:
> deparse(factor(All_cause_death, levels= c('Dead', 'Alive')) ~ Age_in_years + Systolic_, backtick= TRUE)
[1] "factor(All_cause_death, levels = c(\"Dead\", \"Alive\")) ~ Age_in_years + "
[2] " Systolic_"
为什么会发生这种情况?如何才能为第一个代码获得长度为 1 的向量?
【问题讨论】:
-
你可以很容易地通过将
deparse与 paste 包装起来得到一个长度为 1 的向量:paste(deparse([statement to be deparsed]), collapse = " ") -
@AllanCameron 谢谢,这就是我现在正在做的事情,但我仍然想知道为什么会发生这种情况。
-
您也可以在
deparse()函数中使用width.cutoff参数。