如何计算时间加权平均值并创建滞后

2024-01-06

我搜索了论坛,但没有找到任何可以回答或提供如何在论坛上做我想做的事情的提示。

我有每年的暴露数据测量,我希望根据每个人参与研究的情况来计算个人水平的年平均值。对于每一行,一年暴露分配应包括从加入研究前最后一个月开始的前 12 个月的数据。 例如,样本数据中的第一个人于 2002 年 2 月 7 日加入研究。他的暴露将包括 2002 年 1 月(年平均为 18)和 2001 年 2 月至 12 月(年平均为 19)的贡献。此人的时间加权平均值为 (1/12*18) + (11/12*19)。同一个人的两年平均暴露时间可以追溯到 2002 年 1 月至 2000 年 2 月。

同样,对于 2004 年 12 月加入研究的最后一个人,将包括 2004 年 11 个月和 2003 年 1 个月的贡献,他的年平均暴露量将是从 2004 年导出的 (11/12*5 ) 和 (1/12*6)这是2003年的年平均值。

我如何计算从进入研究之日起 1 年、2 年和 5 年的平均暴露量?如何按照我所描述的方式使用滞后?

从此链接访问示例数据

https://drive.google.com/file/d/0B_4NdfcEvU7La1ZCd2EtbEdaeGs/view?usp=sharing https://drive.google.com/file/d/0B_4NdfcEvU7La1ZCd2EtbEdaeGs/view?usp=sharing


这不是一个优雅的答案。但是,我想留下我尝试过的东西。我首先整理了数据框。我想确定哪一年将是每个科目的关键年份。所以,我创建了id. variable来自原始数据集中的列名称(例如 pol_2000)。entryYear来自entry在你的数据中。entryMonth来自entry以及。check创建的目的是为了确定哪一年是每个参与者的基准年。在下一步中,我使用以下方法为每个参与者提取了六行getMyRows在 SOfun 包中。在下一步中,我使用了lapply并按照您在问题中描述的方式进行数学计算。为了计算两年/五年的平均值,我将总值除以年份(2 或 5)。我不确定最终的输出会是什么样子。因此,我决定为每个主题使用基准年,并为其添加三列。

library(stringi)
library(SOfun)
devtools::install_github("hadley/tidyr")
library(tidyr)
library(dplyr)


### Big thanks to BondedDust for this function
### http://stackoverflow.com/questions/6987478/convert-a-month-abbreviation-to-a-numeric-month-in-r

mo2Num <- function(x) match(tolower(x), tolower(month.abb))


### Arrange the data frame.
ana <- foo %>%
       mutate(id = 1:n()) %>%
       melt(id.vars = c("id","entry")) %>%
       arrange(id) %>%
       mutate(variable = as.numeric(gsub("^.*_", "", variable)),
              entryYear = as.numeric(stri_extract_last(entry, regex = "\\d+")),
              entryMonth = mo2Num(substr(entry, 3,5)) - 1,
              check = ifelse(variable == entryYear, "Y", "N"))

### Find a base year for each subject and get some parts of data for each participant.
indx <- which(ana$check == "Y")
bob <- getMyRows(ana, pattern = indx, -5:0)


### Get one-year average
cathy <- lapply(bob, function(x){
    x$one <- ((x[6,6] / 12) * x[6,4]) + (((12-x[5,6])/12) * x[5,4])
    x 
})

one <- unnest(lapply(cathy, `[`, i = 6, j = 8))

### Get two-year average
cathy <- lapply(bob, function(x){
    x$two <- (((x[6,6] / 12) * x[6,4]) + x[5,4] + (((12-x[4,6])/12) * x[4,4])) / 2
    x 
})

two <- unnest(lapply(cathy, `[`, i = 6, j =8))


### Get five-year average
cathy <- lapply(bob, function(x){
    x$five <- (((x[6,6] / 12) * x[6,4]) + x[5,4] + x[4,4] + x[3,4] + x[2,4] + (((12-x[2,6])/12) * x[1,4])) / 5 
    x 
})

five <- unnest(lapply(cathy, `[`, i =6 , j =8))

### Combine the results with the key observations
final <- cbind(ana[which(ana$check == "Y"),], one, two, five)
colnames(final) <- c(names(ana), "one", "two", "five")

#   id     entry variable value entryYear entryMonth check       one       two      five
#6   1 07feb2002     2002    18      2002          1     Y 18.916667 18.500000 18.766667
#14  2 06jun2002     2002    16      2002          5     Y 16.583333 16.791667 17.150000
#23  3 16apr2003     2003    14      2003          3     Y 15.500000 15.750000 16.050000
#31  4 26may2003     2003    16      2003          4     Y 16.666667 17.166667 17.400000
#39  5 11jun2003     2003    13      2003          5     Y 13.583333 14.083333 14.233333
#48  6 20feb2004     2004     3      2004          1     Y  3.000000  3.458333  3.783333
#56  7 25jul2004     2004     2      2004          6     Y  2.000000  2.250000  2.700000
#64  8 19aug2004     2004     4      2004          7     Y  4.000000  4.208333  4.683333
#72  9 19dec2004     2004     5      2004         11     Y  5.083333  5.458333  4.800000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算时间加权平均值并创建滞后 的相关文章

  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • 按不规则时间间隔对数据进行分组求和(R语言)

    我正在看这里的 stackoverflow 帖子 R 计算一组内的观察次数 https stackoverflow com questions 65366412 r count number of observations within a
  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 如何从 R 数据框中提取关键字

    我是 R 中文本挖掘的新手 我想从数据框的列中删除停用词 即提取关键字 并将这些关键字放入新列中 我尝试制作一个语料库 但它对我没有帮助 df C3是我目前拥有的 我想添加栏目df C4 但我无法让它工作 df lt structure l
  • 使用 pkg:sjPlot 函数创建一个生成部分斜体单元格的数据框

    我正在尝试创建一个简单的数据表 其中 Coral taxon 列中的属名称为斜体 而 spp 列中的属名称为斜体 属名后面的部分不大写 我尝试使用 expression 函数对 Coral taxon 的每一行进行编码 但没有成功 sum
  • 如何将同一行中以逗号分隔的值拆分到R中的不同行

    我有一些数据来自谷歌表格 https forms gle rGQQL3tvA1PrE4dD8我想拆分以逗号分隔的答案 and 复制参与者的 ID 数据如下 gt head data names Q2 Q3 Q4 1 PART 1 fruit
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • R- 将某些列从 0 标准化为 1,其值等于 0

    我最近开始使用 are 我想扩展我的数据矩阵 我在这里找到了一种方法在两点之间缩放系列 https stackoverflow com questions 5468280 scale a series between two points
  • 用表达式分割轴标签

    我有一个带有包含表达式的长标签的图 我想将其分成两行 在表达式中添加 n 结果不符合预期 ylabel lt expression A very long label with text and n expression alpha bet
  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • randomForest 包在删除一个预测类时的奇怪行为

    我正在运行一个随机森林模型 它产生的结果从统计角度来看对我来说完全没有意义 因此我确信有些东西mustrandomForest 包的代码出现错误 至少在模型的本次迭代中 预测 左侧变量是具有 3 种可能结果的政党 ID 民主党 独立党 共和
  • R、Rcpp 与 Armadillo 中矩阵 rowSums() 与 colSums() 的效率

    背景 来自 R 编程 我正在扩展到 C C 形式的编译代码Rcpp 作为循环交换 以及一般的 C C 效果的实践练习 我实现了 R 的等效项rowSums and colSums 矩阵的函数Rcpp 我知道它们以 Rcpp 糖的形式存在 并
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • 警告消息 - 来自 dummies 包的 dummy

    我正在使用 dummies 包为分类变量生成虚拟变量 其中一些变量具有两个以上类别 testdf lt data frame A as factor c 1 2 2 3 3 1 B c A B A B C C C c D D E D D E
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段

随机推荐

  • 如何开始构建 VSTi 插件?

    我想知道构建 VSTi 插件的确切方法是什么 我不希望在短短几周内编写下一个 Massive 因为我不了解 DSP 也没有非常基本的编程技能 我确信这可能高于我目前的水平 但我认为如果我给自己设定一个我非常感兴趣的高目标 我就会成长为一名程
  • Facebook Graph API:在调用 FB.init() 之前调用 FB.login()

    我正在尝试在我的网站上使用新的 Facebook Graph API 这就是我所拥有的 页面上的某处
  • 如何在 Javascript 中映射替换字符(类似于 Perl 中的“tr”函数)?

    我一直在试图弄清楚如何将字符串中的一组字符映射到另一组类似于trPerl 中的函数 I found 这个网站显示了 JS 和 Perl 中的等效功能 http www lemoda net perl perl js perl js html
  • 使用 api.rpc. payment.queryFeeDetails 获取外部费用

    我想用api rpc payment queryFeeDetailsAPI 调用 https polkadot js org docs substrate rpc queryfeedetailsextrinsic bytes at bloc
  • Android NDK 在 CallObjectMethod 调用 getSystemService 中崩溃

    这是我问的另一个问题的后续 Android 从JNI获取MEID https stackoverflow com questions 11643498 android get meid from jni 我正在尝试获取 Android 手机
  • 访问Python列表中的元素

    我的答案列表如下 answers defaultdict
  • 在 R 中使用 tryCatch() 在循环中分配错误值

    我正在努力了解 R 中 tryCatch 的说明 我正在尝试捕获股票的收盘价 案例 2 好案例 TickersJuly2 独特的价格与股票代码关系 情况 1 坏情况 TickersJuly1 FABU 收盘价是 CETX 的重复 对于 FA
  • 以编程方式估计 Android 手机电池耗尽的时间

    因此有一些方法可以通过监听器获取当前的电池电量 但是 这些可以为您提供手机当前电池状态的值 但无法指示电池耗尽的速度有多快 慢 有什么方法可以估计电池耗尽之前的剩余时间 你能做任何知道电压是多少的事情吗 或者也许可以监控一段时间内电池消耗的
  • android recyclerview加载更多按钮[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有教程 示例包含带有 recyclerview 的加载更多按钮 我需要在 recyclerview
  • 控制鼠标键盘Golang?

    如何在操作系统 X11 级别上控制检索 设置鼠标位置并触发键盘事件 这与中的功能类似Java 中的机器人类 http docs oracle com javase 7 docs api java awt Robot html 我知道很可能不
  • 如何在AppBundle中添加视图?

    我正在尝试在 symfony3 中进行实验 我试图在谷歌上搜索它 但我没有找到他们明确的答案 这是 symfony 中的默认控制器 class DefaultController extends Controller Route name
  • Anaconda navigator 和 activate.bat 在 Windows 中出现空格问题

    最近 我突然开始遇到 Anaconda 提示符和使用 VS Code 启动 jupyter 实例的问题 存在 访问被拒绝 错误 但即使作为管理员 我也收到一个错误 该错误提示我路径中存在空格问题 我从来没有遇到过这个问题 并且 anacon
  • discord.py 中的 Cog 和 Extension 有什么区别?

    在discord py文档中 有 扩展 https discordpy readthedocs io en stable ext commands extensions html https discordpy readthedocs io
  • 获取 Puppeteer 中 XPath 的所有链接(暂停或不起作用)?

    我需要使用 XPath 选择页面上的所有链接 然后我的 Puppeteer 应用程序才能单击并执行一些操作 我发现该方法 下面的代码 有时会卡住 我的爬虫会暂停 是否有更好 不同的方式从 XPath 获取所有链接 或者我的代码中是否存在不正
  • Firefox 中可点击的电话协议标签

    我有一个非常标准的电话号码标签 它适用于一切except火狐 我认为电话协议是标准的 有我不知道的解决方法吗 a class tel href 800 123 4567 a 火狐浏览器错误信息 地址不明白 Firefox 不知道如何打开此地
  • java 中最好的 XML 解析库是哪个 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Rails 范围查找当前用户

    我使用 Rails 3 和 Devise 进行用户身份验证 假设我有一个启用了 Devise 的用户模型和一个产品模型 并且用户有很多产品 在我的产品控制器中 我希望我的 find 方法的范围由 current user 确定 即 prod
  • 为什么 Heroku 会给出权限被拒绝的错误?

    When git clone v email protected cdn cgi l email protection testabcde git Cloning into testabcde Heroku 回归 Permission de
  • 角度 2 不透明令牌

    需要一些有关提供 OpaqueToken 的帮助 使用 Angular 2 beta 12 如果提供程序密钥是字符串 则它可以正常工作 但在使用 OpaqueToken 时则不起作用 在 Child 类中 SF 未定义 家长班级 expor
  • 如何计算时间加权平均值并创建滞后

    我搜索了论坛 但没有找到任何可以回答或提供如何在论坛上做我想做的事情的提示 我有每年的暴露数据测量 我希望根据每个人参与研究的情况来计算个人水平的年平均值 对于每一行 一年暴露分配应包括从加入研究前最后一个月开始的前 12 个月的数据 例如