You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:如何让反引号支持含空格的非标准变量名?

在R的lrm函数中使用含空格的变量名

问题场景

使用R语言rms包的lrm函数拟合逻辑回归时,遇到含空格的变量名(如Foot drop),即使使用反引号包裹,模型仍无法正常运行,但将变量名改为下划线分隔的Foot_drop时可以成功拟合。

可行解决方案

方法1:用I()函数包裹带反引号的变量

在公式中,将带空格的变量用I()包裹,同时保留反引号:

fit4 <- lrm(Recovered ~ I(`Foot drop`), data = data2, x = T, y = T)
print(fit4)

方法2:使用reformulate构造公式

通过reformulate函数动态生成公式,避免直接在公式字符串中处理空格:

fit5 <- lrm(reformulate(response = "Recovered", termlabels = "`Foot drop`"), data = data2, x = T, y = T)
print(fit5)

方法3:提前重命名变量(最稳妥)

如果允许修改数据集,直接将带空格的变量重命名为标准格式:

names(data2)[names(data2) == "Foot drop"] <- "Foot_drop"
fit6 <- lrm(Recovered ~ Foot_drop, data = data2, x = T, y = T)
print(fit6)

验证说明

以上三种方法都能成功拟合模型,其中方法1和2无需修改原始数据集,适合需要保留原始变量名的场景;方法3则彻底避免了非标准变量名的问题,后续分析更省心。

内容的提问来源于stack exchange,提问作者zhiwei li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:35:27