请考虑下面的例子

before = matrix(c(1, 2, 3, NA, 4, 5, NA, NA, 1), ncol = 3)
after = matrix(c(1, 2, 3, 1, 4, 5, 1, 4, 1), ncol = 3)

前面的矩阵是我总是根据缺失值的位置来处理的那种矩阵,而后面的矩阵是我需要重复获得的矩阵. 有没有什么有效的套路?

推荐答案

您可以按行方式应用{zoo}中的na.locf()(MARGIN = 1L):

> before = matrix(c(1, 2, 3, NA, 4, 5, NA, NA, 1), ncol = 3)
> after = matrix(c(1, 2, 3, 1, 4, 5, 1, 4, 1), ncol = 3)
> (before2 = t(apply(before, 1L, zoo::na.locf)))
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    2    4    4
[3,]    3    5    1
> identical(before2, after)
[1] TRUE

请阅读文档,其中包含大量实现的选项. 或编写您自己的函数,请参见here.

R相关问答推荐

如何写一个R函数来旋转最后n分钟?

使用tidy—select创建一个新的带有mutate的摘要变量

将数据集中的值增加到当前包含的最大值

在R中为马赛克图中的每个字段着色

以更少间隔的较小表中的聚合离散频率表

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

从一个列表的框架中移除列表包装器

如何用书面利率绘制geom_bar图

解析R函数中的变量时出现的问题

如何根据数据帧中的值从该数据帧中提取值?

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

将向量元素重新排序为R中的第二个

R中治疗序列的相对时间指数

R仅当存在列时才发生变异

排序R矩阵的行和列

在REST API中使用参数R

将日期列从字符转换为日期得到的结果是NAS

将Geojson保存为R中的shapefile

R:水平旋转图

从字符串列中的向量中查找第一个匹配的单词