问题现象:
使用R对xpt文件进行分析时,使用tableby()函数,出现“找不到对象'RIDAGEYR'”错误。其中,RIDAGEYR为从xpt文件读取到list的某一列名称。
环境:
R:4.2.0
加载包:haven、plyr、dplyr、arsenal (下载的是4.2.2的版本)
过程:
###加载包导入
library(haven)
library(plyr)
library(dplyr)
library(arsenal)
###读取文件
demo.g = read_xpt("C:/Users/Desktop/demo_g.xpt")
###列向量名称
colnames(demo.g)
###调用tableby
tabl = tableby(- RIDAGEYR + RIAGENDR + DMDEDUC2 + INDFMPIR ,data = demo.g)
###出错:Error in as_list_formula(formula) : 找不到对象'RIDAGEYR'
尝试的方法:
###将所使用的列名称标签进行查询,确保在list存在
which(names(demo.g) == RIDAGEYR )
返回了相对应的列数
###网上搜索“尝试使用~操作符”
没有报错
> tabl = tableby( ~ RIDAGEYR + RIAGENDR + DMDEDUC2 + INDFMPIR ,data = demo.g)
> summary(tabl, text=TRUE)
提问:
经过自己网上搜索,借由操作符得到了一定程度的效果,但不明白问题是出在什么原理?
同样可能目前的尝试对操作符并没有进行相应的分析操作,如果是这样,是该如何进行修改?