首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中基线和时变数据的连接

R中基线和时变数据的连接
EN

Stack Overflow用户
提问于 2022-07-29 00:37:15
回答 1查看 38关注 0票数 1

我试图合并R中的两个数据集,其中一个包含队列的基线数据,另一个包含这些人随时间变化而更新的时变数据。我需要将这两个数据集合并成一个长格式的数据集,每年有一个行,但在每一行中保持不变的非时变变量(如性别或种族,没有更新)。

例如,使用下面的数据集,我希望每个ID号有10行,每一行都更新marital_statusemployment,但是对于每个ID号,sex仍然是固定的。这看起来应该是相对简单的,但是在过去的基线中,我无法找到一种不将sex作为NA合并的方法。

代码语言:javascript
复制
baseline <- data.frame(
  ID = c(1:10),
  year = 2000,
  marital_status = (sample(0:1, 10, replace = TRUE)),
  employment = (sample(0:1, 10, replace = TRUE)),
  sex = (sample(c("M","F"), 10, replace = TRUE))
)

head(baseline)

time_varying <- data.frame(
  ID = c(1:10),
  year = rep(2001:2010, 10),
  marital_status = (sample(0:1, 100, replace = TRUE)),
  employment = (sample(0:1, 100, replace = TRUE))
)

head(time_varying)
EN

回答 1

Stack Overflow用户

发布于 2022-07-29 00:49:53

根据您拥有的数据,您可以将来自time_varying的行与来自baseline的行绑定(不包括sex);然后(内部或外部)与那些绑定行一起加入baseline非时变列(ID、性别):

代码语言:javascript
复制
library(dplyr)

inner_join(
  select(baseline, ID, sex),
  bind_rows(select(baseline,-sex), time_varying)
)

(注:如@thelatemail所述,如果基准年为2000年,而time_varying数据为2001年至2010年,则长数据每个ID将有11行)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73160491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档