R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格

2024-03-03

我正在尝试创建一个地点和事件时间的矩阵。就我而言,一旦事件发生(“1”),它就是永久性的并且不能返回到“0”。一旦列中的单元格为“1”,我将尝试用“1”填充右侧后续列中的相邻单元格(请参见下面的示例)。

site <- c('A','B','C','D','E','F','G') #site
time <- c(0,1,4,0,3,2,0) # time in which even occured
event <- c(0,1,1,0,1,1,0) # did a event occur
data <- data.frame(site, time, event)

site.time.matrix <- cast(data, site~time)

# This is the output      # This is the desired output
#site   0  1  2  3  4     #site   0  1  2  3  4
#    A  0 NA NA NA NA     #    A  0  0  0  0  0
#    B NA  1 NA NA NA     #    B  0  1  1  1  1
#    C NA NA NA NA  1     #    C  0  0  0  0  1
#    D  0 NA NA NA NA     #    D  0  0  0  0  0
#    E NA NA NA  1 NA     #    E  0  0  0  1  1
#    F NA NA  1 NA NA     #    F  0  0  1  1  1
#    G  0 NA NA NA NA     #    G  0  0  0  0  0

我发现了一些使用 dplyr 的有前途的代码,例如(使用replace函数替换多个元素 https://stackoverflow.com/questions/28250018/replacing-more-than-one-elements-with-replace-function or 将函数应用于数据框中的每一列,观察每列现有的数据类型 https://stackoverflow.com/questions/7303322/apply-function-to-each-column-in-a-data-frame-observing-each-columns-existing-da)它替换值,尽管我不确定如何在后续列参数中指定相邻单元格。

如果这个问题不清楚,我很抱歉,这是我在 StackOverflow 上的第一篇文章。

谢谢。


第一篇用户帖子详细、可重复且有趣,这是令人欣喜的惊喜,+1!

With na.locf from zoo你可以做的包:

library(reshape) # for cast function
library(zoo)    #for na.locf function short for if NA, last observation carrried forward, ?na.locf

site <- c('A','B','C','D','E','F','G') #site
time <- c(0,1,4,0,3,2,0) # time in which even occured
event <- c(0,1,1,0,1,1,0) # did a event occur
data <- data.frame(site, time, event)

site.time.matrix <- reshape::cast(data, site~time)

site.time.matrix.fill <- site.time.matrix


# Transpose the matrix excluding first column, carry forward last observation and 
# transpose again to return to original matrix structure

site.time.matrix.fill[,-1] <- t(na.locf(t(site.time.matrix.fill[,-1])))

site.time.matrix.fill[is.na( site.time.matrix.fill)] <- 0

site.time.matrix.fill

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

R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格 的相关文章

  • 与 NA 匹配的值 - 缺失值 - 使用 mutate

    我有点卡住了 有没有比下面更好的方法来进行值匹配 将 NA 视为 实际值 mutate library dplyr data foo lt data frame A c 1 2 NA 4 NA B c 1 3 NA NA 4 不是所需的输出
  • R 中的县等值区域地图的阿拉斯加和夏威夷格式不正确

    我正在尝试将美国的 Choropleth 地图格式化为特定颜色 不幸的是 当使用scale fill brewer改变颜色 只有 48 个州这样做 夏威夷和阿拉斯加没有 是否可以知道我是否也可以将着色应用到夏威夷和阿拉斯加 library
  • 将鼠标悬停在 R 中的传单时弹出?

    我的传单地图看起来像这样 library sp library leaflet circleFun lt function center c 0 0 diameter 1 npoints 100 r diameter 2 tt lt seq
  • 通过使用 dplyr 对变量进行分组来将多列的响应制成表格

    你好 我是 plyr dplyr 系列的新手 但很喜欢它 我可以看到它对我自己的工作有巨大的实用性 但我仍在努力解决它 我有一个如下所示的数据框 1 如何为每个非分组变量生成一个表格 以显示分组变量每个值内的响应分布 2 注意 我确实有一些
  • caret::train:为 mlpWeightDecay(RSNNS 包)指定更多非调整参数

    我在使用插入符号包和 RSNNS 包中的 mlpWeightDecay 方法指定学习率时遇到问题 mlpWeightDecay 的调整参数是大小和衰减 将大小保持为 4 并在 c 0 0 0001 0 001 0 002 上调整衰减的示例
  • 如何编写循环来运行数据框的 t 检验?

    我遇到了对数据框中存储的某些数据运行 t 检验的问题 我知道如何一一做 但效率很低 请问如何写一个循环来实现呢 例如 我在testData中获取了数据 testData lt dput testData structure list Lab
  • 获取因子变量中水平和标签之间的原始关联

    我正在寻找一个函数来获取因子变量的原始映射表 我导入一个 Rdata 文件 我有一个名为 FactVar 的因子变量 我知道 FactVar 的映射表如下 010025 gt city1 015146 gt city2 048017 gt
  • 在 R 中的轴标签中绘制表情符号/自定义图像

    我正在尝试在 R 中绘制表情符号和自定义图像作为 X 轴的标签 我读过类似的帖子并且问题 https stackoverflow com questions 47730589 plot emojis emoticons in r with
  • 在 R 中将多个回归表输出到 Word 文档的多个页面中

    我的目标是创建一个多页 Microsoft Word 文档 在连续页面上包含许多格式化回归表输出 理想情况下 这可以使用 R Markdown 来完成 我很幸运地使用Word在Word中制作了格式良好的回归表sjPlot tab model
  • 使用ggmap在地图上绘制等高线

    我有洛杉矶港地区的颗粒物浓度差异 之后 之前 我正在尝试使用 ggmap 在地图上绘制浓度等值线 但结果看起来很不同 我使用的代码如下所示 数据位于代码下方 Code 安装 packages ggmap library ggmap PM r
  • 如何将零件逐一添加到闪亮的图表中

    我正在尝试为我的统计课程制作一些演示 除此之外 我想展示所涉及的逐步过程 对于我正在寻找的简化示例 请考虑以下小玩具 R 函数 toyPlot lt function x lt 1 100 100 y lt x rnorm 100 0 0
  • 在 R 中从一条线偏移绘制一条平行线

    我有代表沿着一些街道行驶的线串 但我实际上想代表骑自行车者的旅程 它偏离线路 即他们在路边附近行驶 我正在努力思考如何去做 我制作了一段可重现的 R 代码来进行说明 Let s say I have a route along some s
  • 拆分数字 yyyymmdd 列

    我有一个包含 DATE 列的数据框 我将其引用为 NM DATA DATE 它是一个 yyyymmdd 形式的数字 我知道 有一百个线程 我尝试了所有能找到的解决方案 但它们对我不起作用 即将重新加载 RStudio NM DATA DAT
  • 将 Fig.cap 设置为 options$label

    如何以编程方式在knitr hook 中设置图形标题 如果没有明确定义 我想将图形标题设置为块标签 我已经阅读了knitr文档options http yihui name knitr options options http yihui
  • R mapbox / 带有动画和 shapefile 的绘图

    我正在制作一个动画 显示地图上绘制的空间数据 并带有基于日期的动画滑块 除此之外 我想绘制一个随时间变化的形状文件 我的动画在没有 shapefile 的情况下也能正常工作 绘制标记和形状文件不会显示形状文件 似乎是两者之间的某种脱节add
  • 从 Rcpp C++ 函数获取 r 函数参数

    我在 R 端定义了一个函数 如下所示 foo lt function arg1 arg2 arg3 以及使用 Rcpp 的 C 函数 该函数获取全局环境并实例化 R 函数以从该函数执行它 这是代码 namespace Rcpp void m
  • 连接系统 R 中的两个或多个数据帧

    我的问题是如何在 R 系统中连接两个或多个数据帧 例如 我有两个数据框 first x y z 1 3 2 4 2 4 5 7 3 5 6 8 second x y z 1 1 1 1 2 4 5 7 我需要这个 x y z 1 3 2 4
  • 如何在data.table中编写累积计算

    顺序累积计算 我需要进行时间序列计算 其中每行计算的值取决于上一行计算的结果 我希望能够利用data table 实际问题是水文模型 累积水平衡计算 在每个时间步长增加降雨量 并减去径流和蒸发作为当前水量的函数 该数据集包括不同的流域和场景
  • 如何在 R 中手动编写正态分布核的似然值?

    具体来说 如何编码 x 和 mu 之差的乘积 精度矩阵以及 x 和 mu 之差的转置 我下面的代码正确吗 提前致谢 colSums dat mu mat solve sigma colSums dat mu mat 其中 mu mat 是重
  • 在ggplot2中按线连接分组点

    我试图将每组的每个蓝点与其相应的红点连接起来 但是 我在使用时遇到问题geom segment 谢谢帮助 repl lt data frame title c A B C A B C diff c 10 06 1 89 12 79 10 0

随机推荐

  • 一个普通的类可以实现多个接口吗?

    我知道接口之间的多重继承是可能的 例如 public interface C extends A B Where A B and C are Interfaces 但是是否可以让一个常规类继承多个接口 如下所示 public class A
  • 有什么方法可以区分未设置的属性和设置为未定义的属性吗? [复制]

    这个问题在这里已经有答案了 说我有对象testObject a undefined 如果我那么console log testObject a 我变得不确定 但如果我也会发生同样的情况console log testObject b 它不存
  • Excel - 多列求和

    如果同一行中的其他单元格符合预定义的条件 我需要对几列的值求和 仅 3 列的工作公式如下 SUM SUMIFS Sheet1 W W Sheet1 B B Sales Sheet1 C C gt 4 SUMIFS Sheet1 X X Sh
  • Plupload - 仅限一个文件

    我在 plupload API 文档中没有看到有关将上传文件数量限制为任意数量 甚至是 1 的选项 博士失败了 或功能失败 如果它不存在 如果有人需要它 我会努力实现这一点 这是一个功能失败 我围绕 jQuery API 做了一个包装器 这
  • GNU Awk 4.2 中 FS = " " 的行为是什么?

    The first week of October Arnold Robbins announced Beta release of gawk 4 2 0 now available in the GNU announce bug gawk
  • Rails,如何在绝对最低级别访问原始请求数据?

    铁轨什么时候出request请求生命周期中最早可用的对象 本质上 请求何时首次作为请求对象可用 以及在哪个对象中 ActionDispatch 您可以从以下位置访问请求参数吗Tester Application 如果是这样 怎么办 如果没有
  • 在 docker 容器中导入 keycloak 的领域配置时出错

    我通过以下命令在 docker 上部署了 keycloak docker run e KEYCLOAK ADMIN admin e KEYCLOAK ADMIN PASSWORD admin p 8080 8080 quay io keyc
  • ReferenceError:Rx 未定义

    我刚刚开始学习 Angular2 我正在尝试使用 Angular2 做 RxJ 示例 如果有人帮助我 我将不胜感激 RxJs 代码 var obs Rx Observable interval 500 take 5 do i gt cons
  • Linq 到对象

    我有两个来自不同服务器的数据库 我无法链接数据库 从数据库中检索数据如下 DB1 Client ID Engagement ID 启用说明 600 10 真实公司1 600 20 虚假公司2 700 10 真实公司3 DB2 Client
  • Fortran 95 数组中具有一维变量的二维数组

    我想在代码中将一些内容存储在二维数组中 然后想扫描该数组 有N 1 行 第一个索引的数量 比如说i 在数组中 然而 对于给定值i 数量j尽管我知道最大可能值 但值不是固定的j 说它是N 2 我当然可以创建大小的数组 N 1 N 2 来存储我
  • IIS会回收asp.net core进程吗?

    我需要在我的 asp net core 应用程序中运行长时间运行的后台任务 我了解 Azure Webjobs 和其他进程外技术 但我宁愿保持解决方案简单并直接在 asp net core 进程中运行这些任务 我使用 Kestrel 该应用
  • 使 VSCodium 的 python 代码突出显示等于 VSCode

    因为 微软不好 而从 VSCode 迁移到 VSCodium 发展python应用程序似乎缺少一些代码颜色 例如 Dark 主题中绿松石色的模块或浅蓝色的局部变量 在下面的比较中可见 Left VSCodium Right VSCode 正
  • 如何在Android中读取彩信数据?

    我想读取彩信数据 我已经在中看到了零件表mmssms db彩信条目的存储位置 我正在使用光标 我想知道合适的URI 我正在使用 content mms sms conversations 并且列名称图像的 地址 发送至 文本 或 主题 和
  • 在 C# 中比较两个结构体的值

    我不是在寻找返回 bool 的两个结构的比较 我想知道是否有一种方法可以获取两个结构的哪些字段 相同的结构 但可能不同的值 是不同的 基本上我想要一种更简单的方法来执行以下操作 public class Diff public String
  • 如何将命令行参数从 pytest 传递到代码

    我正在尝试将参数从 pytest 测试用例传递到正在测试的模块 例如 使用 main pyPython 样板 https www python boilerplate com py3 argparse pytest 我可以从命令行运行它 p
  • 音频元素源的 HTML5 本地存储 - 可能吗?

    我最近一直在尝试 html5 的音频和本地存储功能 但遇到了一些让我困惑的事情 我希望能够在本地缓存或存储音频元素的源 以实现更快的离线播放 问题是我看不出当前的实现如何可能实现这一点 我使用 WebKit 尝试过以下操作 创建一个清单文件
  • Azure DocumentDB 十进制截断

    我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据 几乎一切都工作得很好 但现在我遇到了一个问题 即从 DocumentDB 读取时我的小数 System Decimal 被截断 比如这个价格 Input Price
  • 如何使用带有StanfordCoreNLP prop 'ner'的序列化CRFClassifier

    我正在使用StanfordCoreNLP API 接口以编程方式执行一些基本的NLP 我需要在自己的语料库上训练模型 但我想使用StanfordCoreNLP界面来做到这一点 因为它在幕后处理许多干的机制 我在那里不需要太多的专业知识 我已
  • PHP中两个日期相减

    我在 php 中有两个日期 date1 May 3 2012 10 38 22 GMT date2 06 Apr 2012 07 22 21 GMT 然后我将它们都减去 date2 date1 并得到 Result 6 为什么结果是 6 而
  • R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格

    我正在尝试创建一个地点和事件时间的矩阵 就我而言 一旦事件发生 1 它就是永久性的并且不能返回到 0 一旦列中的单元格为 1 我将尝试用 1 填充右侧后续列中的相邻单元格 请参见下面的示例 site lt c A B C D E F G s