使用时不变变量上的一些缺失数据 (NA) 从长重塑为宽

2024-01-12

使用时stats:::reshape()对于指定为时不变的任何变量,从基数将数据从长格式转换为宽格式,reshape仅获取第一个观察值,如果变量实际上以某种方式变化,则输出警告。就我而言,我缺少想要指定为时间不变的变量的数据,但由于我在其他时间点有这些数据,所以我希望使用这些时间点的值而不是NA这是首先观察到的。

testdata <- data.frame(matrix(c(1,1,2,3,4,3.5,NA,6,4,1,2,1), nrow = 3))
colnames(testdata) <- c("id", "process1", "timeinvariant", "time")
# > testdata
#   id process1 timeinvariant time
# 1  1      3.0            NA    1
# 2  1      4.0             6    2
# 3  2      3.5             4    1

# Note here the missing data on the invariant process at time 1
reshaped <- reshape(testdata, v.names="process1", direction = "wide")
# > reshaped
#   id timeinvariant process1.1 process1.2
# 1  1            NA        3.0          4
# 3  2             4        3.5         NA

The NA当我宁愿采用在时间 2(或任何时候)观察到的值时,它会传播到宽格式。


如果总是至少有一个非缺失值timeinvariant对于每个id,以及所有(非缺失)值timeinvariant每个都相同id(因为它是时间不变的),你不能创建一个新列来填充NA值在timeinvariant然后使用该列重塑形状?例如:

# Add another row to your data frame so that we'll have 2 NA values to deal with
td <- data.frame(matrix(c(1,1,2,1,3,4,3.5,4.5,NA,6,4,NA,1,2,1,3), nrow = 4))
colnames(td) <- c("id", "process1", "timeinvariant", "time")

# Create new column timeinvariant2, which fills in NAs from timeinvariant,
# then reshape using that column
library(dplyr)
td.wide = td %>%
  group_by(id) %>%
  mutate(timeinvariant2=max(timeinvariant, na.rm=TRUE)) %>%
  dcast(id + timeinvariant2 ~ time, value.var='process1')

# Paste "process1." onto names of all "time" columns
names(td.wide) = gsub("(^[0-9]*$)", "process1\\.\\1", names(td.wide) )

td.wide

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

使用时不变变量上的一些缺失数据 (NA) 从长重塑为宽 的相关文章

随机推荐

  • 判断一系列日期是否覆盖一个区间

    我有两个对象日历 Calendar startCalendar new GregorianCalendar 2013 0 31 Calendar endCalendar new GregorianCalendar 我想知道上面列出的两个日期
  • HTTP 处理程序与 HTTP 模块

    有人能用不到两句话解释两者之间的区别吗 是的 我知道谷歌可以提供数百个答案 但不能提供二分之一的清晰句子 HttpHandler 是请求队列的去向 HttpModule是沿途的一个站
  • CodePipeline 构建规范和多个构建操作

    一个简单的构建规范 例如 version 0 2 phases install commands cd lambda src npm install aws cloudformation package template file lamb
  • mod_rewrite 的小问题

    我有一个分类广告网站 每个分类最初都是这样链接的 mydomain com ad php ad id Bmw M3 M tech 113620829 我应该使用什么 RewriteRule 来使此链接看起来像 mydomain com Bm
  • Node js 向 Gmail 发送会议/日历邀请

    我正在尝试使用 Node js 发送日历邀请 我已经尝试过 nodemailer 库 并且正在发送带有日历邀请的邮件 就像参考this https stackoverflow com questions 45097141 nodemaile
  • ASP.NET - Unity - 从外部配置文件读取配置部分

    我想将 Unity 集成到我的应用程序中 并且希望它使用外部配置文件 Unity初始化代码是 var fileMap new ExeConfigurationFileMap ExeConfigFilename unity config Sy
  • 将本地图像添加到 IJulia 笔记本

    如何将本地图像添加到 IJulia 笔记本 该图像与 IPYNB 文件位于同一本地网络文件夹中 该文件夹可通过符号链接访问 我尝试过相对文件名和绝对文件名 img src test png alt Image Test style widt
  • PHP 中变量周围的括号有什么作用?

    我在旧平台上使用 PHP 5 3 中的 ImageMagick 我偶然发现了一段代码 当变量周围使用括号时 该代码不起作用 但当删除这些括号时 该代码却起作用 变量两边的括号有什么作用 im new imagick im gt readIm
  • 在哪里可以找到 jdk 7 中的 jnlp api jar? [复制]

    这个问题在这里已经有答案了 可能的重复 在 JDK 1 7 中找不到 jnlp jar https stackoverflow com questions 10830317 cant find jnlp jar in jdk 1 7 对于j
  • 转换具有相同名称但不同扩展名的图像

    例如 我有两个文件 aaa jpg with cat aaa png with dog 正如您所看到的 尽管名称相同 但图像是不同的 我想将这些图像转换为一种格式 这项任务的基本尝试是 mogrify format jpg png 但由于显
  • 如何捕获flask_restful应用程序中引发的所有异常

    我确实有简单的 Restful 应用程序与 Flask Restful from flask import Flask from flask restful import Api app Flask name api Api app api
  • Ncurses:如何刷新菜单而不丢失当前位置?

    如何在不丢失当前位置的情况下重新加载菜单中的数据 例如 当用户 选择 某个项目时 执行的操作会更改数据 更新项目 删除项目或向菜单添加新项目 我想重新加载菜单 但仍将光标保留在刚刚选择的项目上 最好的方法是什么 作为参考 这个问题似乎非常接
  • 如何将用户表连接到角色表(使用表user_roles)?

    我需要创建一个用于用户身份验证的基本数据库 到目前为止 每个用户都有一个名称 密码和角色 我在互联网上的某个地方找到了这个 看起来很有希望 create table if not exists users id int unsigned n
  • 使用 Windows 服务运行 UI

    我计划使用 Windows 服务 用 C 编写 运行启动 监视 UI 应用程序 选中 允许服务与桌面交互 这在 Windows XP 上工作正常 但在 Windows 7 上弹出如下所示 当我点击查看消息时 整个屏幕一片空白 只显示 UI
  • 列出所有已部署的休息端点(spring-boot、jersey)

    是否可以使用 Spring Boot 列出我配置的所有休息端点 执行器在启动时列出所有现有路径 我想要类似的自定义服务 这样我就可以在启动时检查所有路径是否配置正确 并使用此信息进行客户端调用 我该怎么做呢 我用 Path GET我的服务
  • Azure DevOps 中是否有“服务帐户用户”概念

    我正在使用自动化工作Azure 开发运营并想知道是否有一种简单的方法可以服务用户帐户即信用永不过期并且可以访问的帐户Azure 开发运营只能通过API 我想在我的自动化脚本中重复使用此用户凭据 但不希望用户可以通过 UI 登录 Azure
  • 如何判断Control是否有Text属性

    当我迭代表单上的一堆不同控件时 而不是尝试访问 Text 属性 String text String Empty foreach Control control in this Controls try text control Text
  • 在 Expect.Call 中设置对象的属性

    很难解释我正在寻找的内容 但我的例子应该可以澄清它 我有下一个代码 var schedule ScheduleUtil CreateScheduleDto user user Expect Call gt scheduleRepositor
  • AWS InterruptedException:睡眠中断 com.amazonaws.http.IdleConnectionReaper

    我们有一个使用AWS Amazone api 的Web应用程序 在coreConfiguration类中我们使用predestroy方法创建一个awsApi bean coreConfiguration的代码是 Bean destroyMe
  • 使用时不变变量上的一些缺失数据 (NA) 从长重塑为宽

    使用时stats reshape 对于指定为时不变的任何变量 从基数将数据从长格式转换为宽格式 reshape仅获取第一个观察值 如果变量实际上以某种方式变化 则输出警告 就我而言 我缺少想要指定为时间不变的变量的数据 但由于我在其他时间点