如何解决如何在 as.factor() 中使用空格分隔的变量名来访问数据帧的数据?
问题是什么时候出现的?
我试图使用 R
的 polr() 方法(通过 rpy2
)使用以下语句进行序数回归分析。在那个陈述中,“步数”是我的因变量。当我设置(在列标题和语句中)下划线替换空格(即 Number_of_Steps)时,一切正常。
model = mass.polr('as.factor(Number of Steps) ~ Var2',data=df_data,method='logistic',Hess = True)
# Here,mass = importr('MASS')
但是,如果有空格(即步数),我会收到以下错误。
RRuntimeError: 解析错误(text = x,keep.source = FALSE) :
:1:17: 意外符号 1: as.factor(Number of
我是如何尝试解决问题的?
我在 google 上搜索过,还检查了与此问题相关的 SO(例如 this one)中的不同问题。但是,我仍然没有找到这个问题的解决方案。
那么,我的问题
在使用 as.factor(variable name)
期间如何在 mass.polr()
中使用空格分隔的变量名称(即列标题)?
感谢阅读!
解决方法
这不是特定于 rpy2 的。在 R 中,可以使用反引号 ( ` ) 来分隔包含空格的符号。
假设您的示例在其他方面是正确的,则应执行以下操作:
model = mass.polr('as.factor(`Number of Steps`) ~ Var2',data=df_data,method='logistic',Hess=True)
演示:
import rpy2.robjects as ro
# Get an R data frame with a column name that has
# a space.
dataf = ro.r("""
require("MASS")
cbind(housing,"My Sat"=housing$Sat)
""")
print('column names:')
print(tuple(dataf.colnames))
from rpy2.robjects.packages import importr
mass = importr('MASS')
house_plr = mass.polr(
ro.Formula('as.factor(`My Sat`) ~ Infl + Type + Cont'),data = dataf
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。