如何获取大型调查数据集的 svydb R 包以返回标准错误

2023-12-14

很高兴看到 Charco Hui 将 Thomas Lumley 的实验性 sqlsurvey 包复活为 svydb。在 R 中处理大型调查数据集可能是一个很好的工具。

不过,在 svydb 计算标准误差时遇到了一些问题。这个问题与我在 sqlsurvey 中遇到的问题非常相似。在运行 Mojave、R 版本 3.5.1 和 MonetDB Aug 2018-SP1 版本的 Mac Pro 上进行的定期调查中,类似的过程运行良好

对于健康研究人员和流行病学家来说,该软件包可能是一个非常重要的工具,因此希望我做的事情明显错误,并且很容易解决这个问题。

下面是一个基于 BRFSS 数据集随机抽取的可重现示例。

# create data
dat<-data.frame(var1=c(6, 5, 6, 6, 6, 6, 3, 3, 2, 6, 3, 4, 6, 6, 3, 6, 5, 5, 4, 5, 4, 4, 6, 6, 4, 3, 4, 4, 3, 5, 5, 3, 6, 1, 6, 3, 5, 3, 4, 2, 5, 2, 6, 5, 6, 2, 2, 4, 3, 6, 6, 6, 3, 6, 2, 3, 4, 1, 4, 4, 2, 6, 5, 4, 6, 2, 6, 2, 6, 6, 6, 5, 4, 2, 5, 3, 4, 4, 5, 1, 2, 6, 6, 6, 2, 6, 4, 4, 2, 3, 6, 3, 3, 6, 2, 6, 5, 4, 6, 2),
var2=c(NA, NA, 88, 88, 88, NA, 1, 88, 88, NA, NA, 2, NA, NA, 88, NA, NA, 88, NA, 88, 88, 88, 88, NA, 88, 88, 88, NA, 88, NA, NA, 88, NA, NA, NA, 88, NA, NA, 4, NA, 88, NA, NA, 8, NA, NA, NA, 88, 88, NA, NA, NA, NA, NA, 88, NA, 88, 88, NA, 88, NA, 88, NA, 11, NA, 1, NA, 4, 88, 7, NA, 88, NA, NA, 88, 88, NA, 88, NA, 88, 1, 88, 88, NA, 88, NA, NA, 88, 29, 88, 88, NA, 88, NA, 88, NA, 88, NA, NA, 88),
strat=c(25011, 12032, 19101, 22011, 24011, 53311, 8011, 25061, 8012, 35031, 32022, 18022, 34101, 19061, 5011, 24011, 34101, 24011, 19021, 31031, 37111, 5012, 25011, 53201, 15052, 22011, 37261, 27011, 30031, 44031, 26011, 42011, 37121, 25041, 39082, 24032, 38011, 15012, 24012, 35062, 16071, 42042, 27011, 45062, 50011, 25041, 56012, 25041, 9022, 55031, 55021, 19091, 35022, 28011, 34101, 40021, 9021, 23031, 34041, 78021, 2021, 30021, 1011, 9012, 40032, 18042, 20011, 49041, 24011, 53111, 16012, 20011, 22011, 25042, 49122, 53352, 53091, 9021, 19071, 29021, 18021, 37131, 46041, 8011, 42031, 47121, 46051, 17011, 42021, 72061, 34101, 25062, 35062, 37061, 55062, 46031, 45041, 28011, 37211, 12021),
psu=c(2006092024, 2006018204, 2006024879, 2006009844, 2006054713, 2006074840, 2006014252, 2006022459, 2006030518, 2006033744, 2006004188, 2006029456, 2006028186, 2006021413, 2006049813, 2006007831, 2006166137, 2006030867, 2006027180, 2006027225, 2006029188, 2006004573, 2006000994, 2006064527, 2006011204, 2006007744, 2006016792, 2006020891, 2006039237, 2006007268, 2006019976, 2006065941, 2006074498, 2006008616, 2006018805, 2006046669, 2006018600, 2006013675, 2006075607, 2006008605, 2006020846, 2006022428, 2006033687, 2006020260, 2006035555, 2006009957, 2006006278, 2006103150, 2006048853, 2006015663, 2006001191, 2006023333, 2006002411, 2006035682, 2006041137, 2006011947, 2006042893, 2006025836, 2006099337, 2006036076, 2006016300, 2006028942, 2006013850, 2006064497, 2006026877, 2006020508, 2006020272, 2006023852, 2006012831, 2006051597, 2006033700, 2006044908, 2006003444, 2006072406, 2006021862, 2006081285, 2006133751, 2006019507, 2006031458, 2006019504, 2006002030, 2006075571, 2006020267, 2006040619, 2006125145, 2006008496, 2006051043, 2006031048, 2006106217, 2006004721, 2006148449, 2006017795, 2006008827, 2006003243, 2006009762, 2006044530, 2006029068, 2006019002, 2006013326, 2006015464),
wt= c(131.167091, 1135.222016, 462.911082, 237.434588, 222.090249, 8.867523, 367.057462, 635.047502, 734.512583, 168.266313, 237.236438, 794.324159, 896.016179, 453.886381, 516.676601, 222.090249, 370.880284, 266.860031, 178.231943, 127.053275, 286.216069, 212.409224, 196.986648, 52.223519, 13.850239, 176.044166, 290.372567, 517.028007, 79.796161, 174.701770, 829.008988, 2514.492945, 177.300719, 190.845451, 270.146986, 261.739684, 45.144276, 276.447180, 1704.022745, 102.473540, 168.798958, 42.614573, 321.460974, 139.006541, 22.110006, 50.144119, 60.941799, 42.225301, 704.172192, 1094.072745, 423.243864, 424.056478, 256.796474, 222.921805, 940.041214, 191.560779, 280.303505, 959.310457, 401.479694, 27.638152, 84.411858, 111.955653, 661.796967, 72.884007, 118.783933, 1905.071998, 214.932923, 539.094181, 415.230283, 91.327212, 217.747861, 366.950758, 378.620855, 150.430028, 594.726292, 189.966155, 74.510093, 280.303505, 474.297391, 5389.787617, 753.892676, 502.921582, 59.307656, 444.877512, 51.007590, 446.469588, 32.298617, 2518.461812, 76.319144, 819.303078, 396.857545, 476.354501, 97.705354, 168.923737, 1179.296136, 34.909445, 275.003257, 410.288302, 147.335207, 723.221948))

# analysis in survey works
library(survey)
options(survey.lonely.psu="remove")
svyDat1<-
svydesign(
id=~psu,
strata=~strat,
data=dat,
weights=~wt,
)


svymean(~var1, svyDat1, se=T, na.rm=T)
#          mean     SE
# numVar 79.286 0.3439

svymean(~var2, svyDat1, se=T, na.rm=T)
#        mean     SE
# var2 70.171 1.0314

# analysis in svydb does not work
library(devtools)
install_github("chrk623/svydb")
library(svydb)

svyDat2 = svydbdesign(st="strat", wt="wt", id="psu", data=dat)
svydbmean(x = var1, design = svyDat2 , num = T)
#        Mean SE
# var1 3.6063 NA
svydbmean(x = var2, design = svyDat2 , num = T)
#        Mean SE
# var2 70.171 NA


# try with database connection returns more informative (?) error message 
require(MonetDBLite)
require(DBI)
require(dbplyr)
con = dbConnect(MonetDBLite())
dbWriteTable(con, "dat", dat)
dat.db = tbl(con, "dat")
svyDat3 = svydbdesign(st = strat , wt = wt,id = psu , data = dat.db)
svydbmean(x = var1, design = svyDat3 , num = T)
# Error in .local(conn, statement, ...) :
#   Unable to execute statement 'CREATE TEMPORARY TABLE "auugiyqyip" AS SELECT "sum(scaled)"
# FROM (SELECT SUM("scaled") AS "sum(scale...'.
# Server says 'MALException:batcalc./:22012!division by zero. '.
# In addition: There were 12 warnings (use warnings() to see them)

svydbmean(x = var2, design = svyDat3 , num = T)
# Error in .local(conn, statement, ...) :
#   Unable to execute statement 'CREATE TEMPORARY TABLE "yxqvidpdbx" AS SELECT "sum(scaled)"
# FROM (SELECT SUM("scaled") AS "sum(scale...'.
# Server says 'MALException:batcalc./:22012!division by zero. '.

正如该程序的作者 Charco Hui 所指出的,svydb 已更新为允许 svydb.lonely.psu = "remove" 作为选项。这解决了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取大型调查数据集的 svydb R 包以返回标准错误 的相关文章

  • ggplot堆叠条 - 隐藏标签但保留标签位置

    我在 ggplot 中有一个堆积条形图 其中 geom text 标签位于每个条形的中心 我想隐藏小条上的标签 以便图表看起来不会过于拥挤 我可以使用下面的代码来完成此操作 但它会弄乱标签的位置 正如您在下面的链接图片中看到的那样 它们不再
  • 再现频率矩阵图

    我想在 R 中重新创建一个情节 情节如下 来源 Boring E G 1941 作为动态平衡的统计频率 心理学评论 48 4 279 这略高于我的工资等级 能力 因此在这里询问 无聊的状态 第一次 A 只能出现 从不 0 或 总是 1 在
  • 根据不平凡的标准有效合并两个数据帧

    正在接听这个问题 https stackoverflow com questions 18821862 data selection error 18823432 18823432昨晚 我花了一个小时试图找到一个没有增长的解决方案data
  • 循环中的knitr模板和子文档

    圣诞节前我之前问过跨多个 knitr 文档的单一样式表 https stackoverflow com questions 20370584 single style sheet across multiple knitr document
  • read.table 和 read.delim 函数之间的区别

    两者有什么区别read table and read delim R语言中的函数 当您不确定函数的作用时 除了阅读帮助页面之外 您还可以检查函数的实际代码 例如 输入read delim显示该函数包含以下代码 gt read delim f
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • 按具有作业的组划分的 R 分位数

    我有以下 df group rep seq 1 3 30 variable runif 90 5 0 7 5 df data frame group variable 我需要 i 按组定义分位数 ii 将每个人分配到相对于其组的分位数 因此
  • 使用 R 从字符串中提取函数参数

    最好使用stringr包 我想创建一个函数extract 以字符串向量作为参数 vec lt c div span icon hospital user i18n t Enrolments or i18n t Paper a string
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • 以编程方式触发 R 传单中的标记鼠标单击事件以获得闪亮效果

    我的问题与此相同 在 R 传单中触发标记鼠标单击事件以获得闪亮效果 https stackoverflow com questions 56962857 trigger marker mouse click event in r leafl
  • 连接多个用户的 R 闪亮会话

    最小可重现示例 library shiny ui lt fluidPage actionButton button1 Run 1 actionButton button2 Run 2 server lt function session i
  • R:为什么 boxplot(x,log="y") 与 boxplot(log(x)) 不同?

    delme lt exp rnorm 1000 1 5 0 3 boxplot delme log y boxplot log10 delme 为什么这两个图中的胡须不同 谢谢 阿古斯 我想说的是 在您的第一个图中 您只是将 y 轴更改为对
  • 如何将带有观察计数的标签添加到 stat_summary ggplot?

    我有一个数据集 例如 outcome lt c rnorm 500 45 10 rnorm 250 40 12 rnorm 150 38 7 rnorm 1000 35 10 rnorm 100 30 7 group lt c rep A
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • 在函数中使用 quit/q 会导致 RStudio 出现致命错误

    更多的是好奇 但当你使用时q or quit在 R studio 内的函数内部 它会导致致命错误 如下所示 但 rgui 中的相同函数会导致 R 像往常一样停止 并且仅使用q 在 RStudio 中按预期关闭 R 为什么q在函数中导致 RS
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt

随机推荐

  • 在 C# 中调用另一个窗体上的方法

    我正在构建一个基本的图像编辑器 在我的应用程序中 如果用户想要调整图像大小 则会弹出一个新表单 并要求用户输入图像的新宽度和高度 public partial class Form1 Form private void resizeTool
  • MySQL外键约束、级联删除

    我想使用外键来保持完整性并避免孤儿 我已经使用innoDB 如何创建 DELETE ON CASCADE 的 SQL 语句 如果我删除一个类别 那么如何确保它不会删除也与其他类别相关的产品 数据透视表 categories products
  • UIScrollView - 显示滚动条

    可能很简单 有谁知道如何让 UIScrollView 的滚动条不断显示 当用户滚动时它会显示 以便他们可以看到他们所处的滚动视图的位置 但我希望它不断显示 因为用户无法立即明显看出滚动可用 任何建议将不胜感激 不 你不能让它们总是显示 但你
  • 如何在 iframe 中嵌入 Facebook 页面?

    对于我的应用程序 我需要将 Facebook 页面嵌入 iframe 中 以下是 html 代码 但它不起作用 知道为什么以及如何规避吗 我相信 Facebook 是一个反框架脚本 它会检测它是否在 iframe 内 并显示一个徽标 当您单
  • 是否可以将对象初始化为具有属性的函数?

    是否有可能将对象初始化为具有属性的函数 像这样的东西 var a gt return I am function prop1 I am property in function object prop2 10 alert a gt I am
  • 如何强制 WebSphere AS 8 使用特定的 JSF 实现?

    我有一个使用 WAS 6 1 开发的旧企业应用程序 现在我的公司正在尝试在 WAS 8 中执行该应用程序的实现 但是我在渲染 JSF 内容时遇到了麻烦 有一些链接在单击 JS 调试器时显示 Uncaught ReferenceError m
  • 安全沙箱违规 Flash AS3

    我正在尝试通过我的 Flash 项目播放 Youtube 视频 视频播放了 但我收到以下错误 它破坏了我项目的其余部分 我找不到任何有这个确切错误的地方 我一直试图理解它在告诉我什么 但我就是无法理解它 错误 Security Sandbo
  • excel转pdf忽略打印区域并调用打印机

    此循环遍历学生列表 但在打印区域上失败 该打印区域在导出行中设置和编码 它为每个学生打印 130 页 而实际上应该只有一页 所有打印机都会被调用 打开一个对话框 登录 6 密码 并停止宏 打印机是网络上的工作打印机 但并不总是可用 有没有办
  • SSMS 能否显示 Azure Synapse 中的实际执行计划?

    我正在研究 Azure Synapse 在专用 SQL 池数据库中 SSMS 的 实际执行计划 被禁用 在无服务器池数据库中 SSMS 显示 不支持设置统计信息 在SQL执行中 我忘记截图了 禁用实际执行计划 的图像是 4 通过选择 执行
  • 根据位置从字符串中删除字符

    有没有一种简单的方法可以从字符串中删除特定字符 在下面的示例中 我想从向量的每个元素中删除最后三个字符 string lt c Autauga AL Bald Win Av Barbour AL Bibb AL Blount At Bull
  • 填充曲线和对角线之间的区域

    你能帮我解决这个问题吗 我想知道如何填充曲线和对角线 连接 X min Y min 到 X max Y max 的线 之间的区域 例如 在下图中我们如何填充上面的区域红色对角线和蓝色下方的区域 提前感谢您的时间和考虑 import nump
  • 打开 js 变量的保存文件对话框

    在我的网络应用程序中 我需要为用户提供将 js 变量保存为文件的选项 当用户单击下载时 应用程序会要求他保存文件 最好是保存为 js 文件 与谷歌文档类似 您可以保存文件 javascript可以通过这种方式传递它的变量吗 查看下载这正是允
  • 在 Excel 中查找范围的第一个非空白单元格的标题索引的公式?

    我有这张表 可以将其视为基本的自定义甘特图 我想根据同一行范围内第一个填充的单元格及其相应列 第 1 行 的标题值 用开始日期填充 A 列 显示我的预期结果比实际编写更容易 非常感谢您的帮助 在A2中尝试复制这个公式 IF COUNTA B
  • 安卓支持所有屏幕尺寸吗?

    我知道这个问题已经被问过很多次了 但我找不到针对我的查询的最佳解决方案 我遵循了android开发者支持中给出的每一个步骤 支持多屏 将不同尺寸的图像放在不同的文件夹中 为设备屏幕制作不同的布局文件夹 但在 4 7 英寸到 5 0 英寸的设
  • JAXB - xsd:all 内具有无限 maxOccurs 的元素

    假设我有以下 java 类 该类映射到 REST 服务的请求主体以搜索用户 XmlRootElement name SearchParams XmlType propOrder public class SearchParams priva
  • 实体框架和自我跟踪实体与 POCO

    如果我想使用实体框架 4 作为我的数据层 并希望将我的实体发送到另一层 无论是通过 WCF 还是其他机制 然后希望能够更新实体并将它们发回以进行更新 删除 插入最好使用自跟踪实体还是 poco 对象 如果可能的话 我宁愿使用 POCO 对象
  • 在 ggplot 中绘制多个时间序列

    我有一个由 10 个变量组成的时间序列数据集 我想创建一个时间序列图 其中每个 10 个变量随着时间的推移以不同的颜色绘制在同一个图表上 值应位于 Y 轴上 日期应位于 X 轴上 点击这里对于数据集 csv 这是我一直在使用的 可能是错误的
  • 如何阅读这个 LESS css?

    我正在尝试找出 Joni Korpi 的 Frameless CSS 无框架网格 http framelessgrid com 并且我很难阅读他拥有的 less 文件 我对 LESS 使用变量有一个基本的了解 所以我知道 column 48
  • 安装 Windows 10 周年更新后无法启动 Android 模拟器

    我刚刚安装了 Windows 10 周年更新 现在无法启动 Android 模拟器 Android Studio 显示以下消息 Android Emulator is incompatible with Hyper V 但如下图所示 Hyp
  • 如何获取大型调查数据集的 svydb R 包以返回标准错误

    很高兴看到 Charco Hui 将 Thomas Lumley 的实验性 sqlsurvey 包复活为 svydb 在 R 中处理大型调查数据集可能是一个很好的工具 不过 在 svydb 计算标准误差时遇到了一些问题 这个问题与我在 sq