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

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日

悬赏问题

  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”