将数值向量中的 NA 替换为从邻居计算出的值

2024-01-25

我正在尝试写一个替换()函数将给定数值向量中的每个缺失值替换为算术平均值 of 它的前面和后面的元素.

例如,如果c(5, NA, 6, 2, 3, 5, 6, 4, NA, 2, NA, 5)给出,那么结果应该是c(5, 5.5, 6, 2, 3, 5, 6, 4, 3, 2, 3.5, 5).

我正在寻找一些优雅的解决方案,可能带有应用函数(没有控制流结构),但我还没有想出任何有效的解决方案。我不太确定如何访问 lambda function(x) 中的上一个和下一个元素。

replacena <- function(l)
{
   stopifnot(is.numeric(l))
   sapply(l[is.na(l)], function(x){ l[x] <- mean( c(l[-1:0], l[0:1]) ) } )
}

函数输入:

replacena(c(5, NA, 6, 2, 3, 5, 6, 4, NA, 2, NA, 5))

预期产出

c(5, 5.5, 6, 2, 3, 5, 6, 4, 3, 2, 3.5, 5)

有任何想法吗?


Try

library(zoo)
na.approx(v1)
[1] 5.0 5.5 6.0 2.0 3.0 5.0 6.0 4.0 3.0 2.0 3.5 5.0

data

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

将数值向量中的 NA 替换为从邻居计算出的值 的相关文章

  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • R foreach问题(某些进程返回NULL)

    我遇到了问题foreach我正在 R 中使用的程序的一部分 该程序用于运行不同参数的模拟 然后将结果返回到单个列表 然后用于生成报告 当并非所有分配的模拟运行都在报告上实际可见时 就会出现问题 从各方面来看 似乎只有分配的运行的一个子集实际
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 使用 Shiny 发布平行坐标图表时出现“错误:路径[1]="”:没有这样的文件或目录”

    我有一个似乎很常见但我还没有找到解决方案的问题 当尝试使用 rCharts Parcoords 发布 Web 应用程序时 出现以下错误 错误 路径 1 没有这样的文件或目录 奇怪的是 该应用程序在我的笔记本电脑上运行得很好 下面是我正在使用
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • 使用 ggmap 截断密度多边形

    我在使用 R ggmap 绘制密度图时遇到问题 我的数据如下所示 gt head W date lat lon dist 1 2010 01 01 31 942 86 659 292 415 2 2010 01 10 32 970 84 1
  • 将不均匀的层次列表转换为数据框

    我认为还没有有人问过这个问题 但是有没有一种方法可以将具有多个级别和不均匀结构的列表的信息组合成 长 格式的数据帧 具体来说 library XML library plyr xml inning lt http gd2 mlb com c
  • 任意列中包含字符串的子集行

    我有一个如下所示的数据集 Col1 Col2 Col3 abckel NA 7 jdmelw njabc NA 8 jdken jdne 如何对数据集进行子集化 使其仅保留包含字符串 abc 的行 最终预期输出 Col1 Col2 Col3
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个

随机推荐

  • mobx中无法观察到对象的深层变化

    我在反应中使用 mobx 6 3 12 管理状态 但我无法观察到物体的深层变化 这是我的消息来源 store class ApiStore values name author constructor makeObservable this
  • Sequelize表名更改

    已将表重命名为users to user在 MySQL 数据库中 在Express我在跑Sequelize并为旧的创建了一个架构users桌子 重命名表并且代码中的所有内容都从users to user Sequelize仍在寻找专门命名的
  • 按颜色排序

    我有一长串 1000 十六进制颜色 分为一般颜色类别 红色 橙色 蓝色等 当我显示每个类别中的颜色列表时 我需要按颜色顺序显示它们 即先浅红色 最后深红色 执行此操作的算法是什么 谷歌搜索让我失败了 我知道这个问题很老了 但是我没有找到解决
  • 停止/启动服务器上的应用程序池和站点

    我想编写一个脚本并从本地 PC 运行它来停止和启动服务器上存在的应用程序池和站点 应用程序池和网站的价值 测试 服务器的值 SERVER1 任何指导将不胜感激 使用管理权限运行命令提示符 然后键入以下内容 C Windows System3
  • K-means:初始中心不明显

    我正在使用通航套餐 https cran r project org web packages GA GA pdf我的目标是找到 k 均值聚类算法的最佳初始质心位置 我的数据是 TF IDF 分数中单词的稀疏矩阵 可下载here https
  • gnuplot - 调整键/图例的大小

    如何调整 gnuplot 4 6 0 中图例的大小 我的意思是线条的大小和not只是字体大小 当我从 pdf 切换到 pdfcairo 终端时 大小突然跳跃并导致关键点与兴趣点重叠 我需要 cairo 来启用 unicode 我刚刚发明的答
  • CasperJS 中的文件 IO

    是否可以在 CasperJS 脚本中读 写文件 var fs require fs var data fs readFileSync testdata data utf 8 console log data Calling casperjs
  • 将海量数据插入Mysql数据库的最快方法[重复]

    这个问题在这里已经有答案了 我实际上有一个包含 100 000 条记录的列表 我想将其插入 MySQL 数据库中 我尝试将它们插入foreach和简单的INSERT INTO然而 即使插入 100 行也需要花费很多时间 比如 1 秒 行 有
  • 我怎样才能执行这个聚合?

    我装了两张表 一张是客户 另一张是订单 select from customers id Name age adress salary 2 102 jpj 24 zzzz 10000 3 103 ftd 20 kkkk 20000 4 10
  • 在PHP中对多维数组进行排序的最快方法

    Array 0 gt Array t gt 81881 b gt 99494 1 gt Array 我有一个像上面这样的多维数组 这个数组中的条目最大可达 20k 我想对这个数组进行排序 到 t 索引而不调用任何外部函数 任何提高效率的建议
  • 由于“INFO Spawnerr:为“app_name”制作调度程序时出现未知错误:EACCES”,无法使用 nohup 启动服务

    我正在尝试与主管一起启动服务 但收到错误消息 信息spawnerr 为 app name 制作调度程序时出现未知错误 EACCES 这是我的supervisord conf 文件 supervisord logfile tmp superv
  • 在类定义之外定义显式专用类的成员函数

    我看到与模板相关的错误 编译器是 Visual Studio 2012 但我不明白 这是代码 归结为要点 Templated class generic template
  • 使用 Windows Azure 队列锁定队列中的消息

    我正在使用 Windows Azure 消息队列 我想知道是否有一种方法可以在收到消息时锁定队列中的消息 当您从队列中检索消息时 它被标记为无形的直到您删除它 或达到超时期限 当它被标记为不可见时 其他人都看不到该消息 我想这已经接近 锁定
  • java中使用数字作为包名

    我已经检查了以下帖子 https docs oracle com javase specs jls se7 html jls 6 html jls 6 2 https docs oracle com javase specs jls se7
  • 在 j2me 中读取收件箱中的短信

    我如何阅读收件箱中的短信 我想阅读短信 没有短信等 我可以在 j2me 中做吗 如果可以的话怎么做 我想在诺基亚和索尼上运行该应用程序 我相信您无法直接从收件箱读取短信 但是 您可以运行 j2me 应用程序并等待传入 的短信 换句话说 如果
  • Firebase Auth:手动检测当前用户最近是否经过身份验证

    默认情况下 如果用户 X 年前登录 Firebase 将要求他 她通过以下方式重新进行身份验证reauthenticateWithCredential以完成该动作 如果用户在继续下一步操作之前已经符合重新身份验证的资格 是否可以查询 Fir
  • 尝试避免使用 sapply 进行 for 循环(对于 gsub)

    尽量避免使用for使用以下代码循环sapply 如果可能的话 带循环的解决方案对我来说非常适合 我只是想学习更多 R 并探索尽可能多的方法 目标 有一个向量i和两个向量sf 搜索 和rp 代替 对于每个i需要循环sf并替换为rp哪里匹配 i
  • 带有 Ignited-Datatables 库的服务器端 DataTables

    如何使用 Ignited Datatables 库来服务器端 DataTables 我的应用程序使用 CodeIgniter 我使用的库是Ignited datatables 库 https github com IgnitedDatata
  • SOLR计数多值字段查询

    是否可以创建一个 solr 查询 其中仅返回在多值字段中具有多个条目的文档 例如 docs id 1 myfield hello word hello stackoverflow id 2 myfield hello word 我天真的示例
  • 将数值向量中的 NA 替换为从邻居计算出的值

    我正在尝试写一个替换 函数将给定数值向量中的每个缺失值替换为算术平均值 of 它的前面和后面的元素 例如 如果c 5 NA 6 2 3 5 6 4 NA 2 NA 5 给出 那么结果应该是c 5 5 5 6 2 3 5 6 4 3 2 3