柯暗 2023-02-09 15:48 采纳率: 100%
浏览 143
已结题

R4.2.0使用tableby函数出问题

问题现象:
使用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)

提问:
经过自己网上搜索,借由操作符得到了一定程度的效果,但不明白问题是出在什么原理?
同样可能目前的尝试对操作符并没有进行相应的分析操作,如果是这样,是该如何进行修改?

img

  • 写回答

3条回答 默认 最新

  • Bioinfo Guy R语言领域新星创作者 2023-02-09 16:57
    关注

    没有看明白你的意思,,但tableby(- RIDAGEYR + RIAGENDR + DMDEDUC2 + INDFMPIR ,data = demo.g)就肯定是错的:
    1.用~不用-可以简单理解为写这个R包的人规定就是这样的,此外像生存分析等建模的时候也一样。
    2.其实你这一句函数也不规范的,这是官方示例,且针对于formula操作符规范的也有官方的详细信息:

    data(mockstudy)
    tab1 <- tableby(arm ~ sex + age, data=mockstudy)
    summary(tab1, text=TRUE)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 修改了问题 2月9日
  • 创建了问题 2月9日

悬赏问题

  • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
  • ¥50 ZYNQ7020双核FLAHS烧写的问题
  • ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
  • ¥15 钢岔管添加弹性约束模拟围岩作用
  • ¥15 AD9164瞬时带宽1.8G,怎么计算出来?
  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题