识别数据序列根据其他列 UserID 发生变化的情况

2023-12-29

我正在处理数据框df如下:

Input:
TUserId  SUID   mid_sum final_sum
 115      201   2       7     
 115      309   1       8     
 115      404   1       9           
 209      245   2       10    
 209      398   2       10          
 209      510   2       10
 209      602   1       10
 371      111   2       11
 371      115   1       11
 371      123   3       11
 371      124   2       11

1-我的数据排列在wide 格式,其中每行都有一个唯一的学生 ID,显示为SUID.

2- 多个学生可以拥有同一位教师,因此多行中的公共教师 ID 如下所示TUserId.

3- 数据包括学生期中成绩和期末成绩。

4- 我有兴趣了解是否存在教师在期中考试中给学生提供相似分数的情况,如下所示mid_sum期末考试的分数不一致,如下所示final_sum。如果在数据中发现这种不一致,我想添加一列Status记录了这个inconsistency.

要求:

a- 为此,我的规则是,如果mid_sum and final_sum按升序排序,正如我在此示例数据框中所做的那样df。我想确定升序序列在这两列中中断的情况mid_sum and final_sum.

b- 如果数据未排序,可以完成吗?

示例1:

例如,对于SUID = 309, mid_sum是比之前的减量mid_sum。所以应该标记为inconsistent。这只应该发生在由同一位老师评分的学生身上TUserId,在本例中是115.

示例2:

同样,对于SUID = 602, mid_sum是比之前的减量mid_sum。所以应该标记为inconsistent。又是同一个老师的TUserId = 209

为了进一步详细说明,我想要这样的输出:

Output:
TUserId  SUID   mid_sum final_sum   Status
 115      201   2       7           consistent
 115      309   1       8           inconsistent
 115      404   1       9           consistent
 209      245   2       10          consistent
 209      398   2       10          consistent
 209      510   2       10          consistent
 209      602   1       10          inconsistent
 371      111   2       11          consistent
 371      115   1       11          inconsistent
 371      123   3       11          consistent
 371      124   2       11          inconsistent
 

数据导入dput()

The dput()数据框如下:

dput(df)

structure(list(
TUserId = c(115L, 115L, 115L, 209L, 209L, 209L, 209L, 371L, 371L, 371L, 371L), 
SUID = c(201L, 309L, 404L, 245L, 398L, 510L, 602L, 111L, 115L, 123L, 124L), 
mid_sum = c(2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 3L, 2L), 
final_sum = c(7L, 8L, 9L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L)), 
class = "data.frame", row.names = c(NA, -11L))

我在 SO 上寻找类似的问题并发现了这个R - 识别连续序列 https://stackoverflow.com/questions/31439273/r-identify-consecutive-sequences但这似乎并不能帮助我解决我的问题。 另一个相关帖子是确定 R 中的数字序列何时被破坏 https://stackoverflow.com/questions/31462438/determine-when-a-sequence-of-numbers-has-been-broken-in-r但同样,这对我的情况没有帮助。

任何有关如何解决此问题的建议将不胜感激。

Thanks!


这是一种相当简单的方法,我们可以测试滞后差异的符号。如果 mid_sum 差值符号与 Final_sum 差值符号相同,则它们是“一致的”。

library(dplyr)
df %>%
  arrange(TUserId, final_sum) %>%
  group_by(TUserId) %>%
  mutate(
    Status = if_else(
      sign(final_sum + 0.1 - lag(final_sum, default = 0)) == sign(mid_sum + 0.1 - lag(mid_sum, default = 0)),
      "consisent", "inconsistent"
    )
  )
# # A tibble: 11 x 5
# # Groups:   TUserId [3]
#    TUserId  SUID mid_sum final_sum Status      
#      <int> <int>   <int>     <int> <chr>       
#  1     115   201       2         7 consisent   
#  2     115   309       1         8 inconsistent
#  3     115   404       1         9 consisent   
#  4     209   245       2        10 consisent   
#  5     209   398       2        10 consisent   
#  6     209   510       2        10 consisent   
#  7     209   602       1        10 inconsistent
#  8     371   111       2        11 consisent   
#  9     371   115       1        11 inconsistent
# 10     371   123       3        11 consisent   
# 11     371   124       2        11 inconsistent

The + .1用于使分数保持相同的行计数为正号。

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

识别数据序列根据其他列 UserID 发生变化的情况 的相关文章

  • 使用 data() 的 R 包命名空间问题 -- 找不到数据集

    我在尝试在我自己的包中导入包 即 robfilter 时遇到了问题 我尝试使用它的方法之一 adore filter 在这一行失败 data critvals 出现错误 未找到数据集 critvals 如果我通过 require robfi
  • R中不重复的组合

    我试图获取变量元素长度为 3 的所有可能组合 虽然它部分地与combn 一起工作 但我没有完全得到我正在寻找的输出 这是我的例子 x lt c a b c d e t combn c x x 3 我得到的输出看起来像这样 1 2 3 1 a
  • 有条件地将字符串转换为特定数值

    我确信对此有一个简单的答案 但我已经扫描了堆栈溢出 但无法找到解决方案 似乎 sapply 和 ifelse 函数的组合可能可以完成这项工作 但我不确定 所以我有一个包含字符的数据框 除了一列是数值 Create dataframe whi
  • R:几个单独图的重新排序因子水平

    我正在尝试从同一个 data frame 创建多个单独的图 每个图的 y 轴上的因子水平顺序不同 每个图都应该对 y 上的因子水平进行递减排序 我知道这可以为每个图手动完成 但我正在寻找一种更有效和更优雅的方法 因为我需要创建相当多的图 这
  • Swift 2.0 版本的 struct GeneratorOf

    看起来struct GeneratorOf
  • R data.table:在当前测量之前对出现次数进行计数

    我有一组在几天内进行的测量结果 测量次数通常为 4 任何测量中可以捕获的数字范围为 1 5 在现实生活中 给定测试集 范围可能高达 100 或低至 20 我想每天计算每个值在当天之前发生的次数 让我用一些示例数据来解释 test data
  • 将整数“20160119”转换为“日”“年”“月”的不同列

    如何将一列整数转换为日期 DATE PRCP 1 19490101 25 2 19490102 5 3 19490118 18 4 19490119 386 5 19490202 38 到这样的表 days month years PRCP
  • 使用 geom_abline() 和 ggplot

    我是初学者ggplot2 距离我开始试验才过去 4 天 所以 如果这个问题听起来太基本了 我深表歉意 我很感激任何指导 我已经在这个问题上苦苦挣扎了大约一个小时 我正在尝试使用geom abline 如下 p lt ggplot mpg a
  • 我们如何获取R中的商品价格?

    正如标题 我知道我们可以使用quantmod包来获取股票价格 但我们如何检索黄金 石油或农产品等商品价格 Use Quandl包 这里有一些例子 Gold lt Quandl LBMA GOLD WTI lt Quandl CHRIS CM
  • R:如何在不耗尽内存的情况下重新绑定两个巨大的数据帧

    我有两个数据框df1 and df2每个都有大约 1000 万行和 4 列 我使用 RODBC sqlQuery 将它们读入 R 没有任何问题 但是当我尝试rbind他们 我收到了最可怕的 R 错误消息 cannot allocate me
  • 如何将xtable对象放置在页面左侧

    问题 如何将 xtable 对象放置到页面左侧或如何全局禁用居中 我正在努力弄清楚如何将 xtable 对象放置在左侧 我有一个 Rmd 文件 所有这些都转到相关的 r 块 require xtable df lt data frame x
  • R 版本 4.0.0 上的 ROracle

    当尝试使用 ROracle 时 我收到以下错误消息 gt library ROracle Error package or namespace load failed for ROracle package ROracle was inst
  • 在r中的数据框中循环线性回归输出

    我有一个下面的数据集 我想在其中对每个国家和州进行线性回归 然后绑定数据集中的预测值 添加另外三列后的最终数据框 我已经对一个国家和一个地区进行了此操作 但想对每个国家和地区进行此操作 并将预测值 上限值和下限值放回到cbind的数据集中
  • R 中 bquote 中的拼接

    假设我正在使用 R 的反引号运算符构建一个表达式bquote 并且我想在列表中的特定位置 拼接 即丢失列表的外括号 例如 我有表达式 5 4 我想在其开头添加 6 而不使用字符串操作 即完全对符号结构进行操作 So gt b quote 5
  • scale_y_discrete 忽略中断/标签

    漏洞 可能相关对此 https github com tidyverse ggplot2 issues 1589 dat data frame x 1 4 y ordered c 4 gt 5 1 1 levels c 1 5 gt 5 g
  • 如何通过 R 的 cor() 的相关分析计算 P 值和标准误差

    I have data http dpaste com 1064360 plain 其中包含每个条件 x 和 y 的 54 个样本 我通过以下方式计算了相关性 gt dat lt read table http dpaste com 106
  • Rmpi:mclapply:在 selectChildren(ac, 1) 中:选择中出现“系统调用中断”错误

    以下最小示例 require Rmpi set seed 1 foo lt parallel mclapply seq len 10 function l lapply 1 10 function x mean rnorm 10000 me
  • 带有 R 传单的自定义图例 - 同一图例中的圆形和正方形

    我想创建一个传单地图 在同一个传单图图例中既有圆形又有正方形 到目前为止 我已经使用了上一篇文章中的建议 并在我闪亮的 UI 代码中添加了以下代码 tags style type text css html body width 100 h
  • 如何在R中生成多个矩阵

    我在 R 中得到了两个值列表 daily max car List 1 21 21 22 22 22 22 21 daily 0 8 List 2 16 17 17 17 18 17 17 尝试在 R Studio 中编写一个 For 循环
  • 尽管参数与文档匹配,Svyby 返回错误

    我已经使用调查包定义了一个调查对象 一切正常 并向其中添加了两列 如下所示 anes svy lt update the update fn adds columns to a survey object anes svy object t

随机推荐

  • 如何使用 boto3 在 EC2 中进行 SSH 和运行命令?

    我希望能够 ssh 进入 EC2 实例 并在其中运行一些 shell 命令 例如this https stackoverflow com a 15503965 4993513 我该如何在 boto3 中做到这一点 这个线程有点旧 但由于我花
  • 在 HashMap 中设置默认值[重复]

    这个问题在这里已经有答案了 我正在尝试找到一种方法使 HashMap 返回默认值 例如 如果您查看以下内容 将打印出 测试 空 如果我想请求一个默认值 那么每当我尝试获取未在 hashMap 中设置的内容时 我都会得到该值 该怎么办 Map
  • 使用 PHP 和 Jquery 将表单输入字段添加到电子邮件

    我用过This https spruce it noise simple ajax contact form 在我的网站上创建联系表单的教程 不幸的是 字段的数量对我来说不够 所以我在表单中添加了公司和主题字段 但是 我无法让邮件输出与其他
  • Unity C# 如何正确加载托管DLL?

    基于这里的另一个问题在 C 项目中使用 OpenH264 DLL https stackoverflow com questions 56230212 using openh264 dll in c sharp project我基本上是想使
  • 为什么 groovy 不能在 Jenkins 管道中运行?

    我目前正在尝试从我的管道运行一个 groovy 脚本作为我的节点之一 但我遇到了这个错误 CompanyName Running shell script ideainspect groovy env groovy No such file
  • GitLab HTTP 远程上的 git 命令失败并显示 403

    我安装了 GitLab 5 0 突然无缘无故地开始失败gitHTTP URL 上的命令 任何命令 例如git clone pull push失败并出现以下错误 fatal unable to access http host user pr
  • 带联合查询的下拉菜单

    我正在开发一个预订系统 在我的预订表单中 我有一个下拉元素 它返回预订系统 仍然 可用的开始时间段 通过创建新的预订 我创建的查询工作正常 并且所有可用的开始时间段都正确返回 QUERY WHERE thistable id IN SELE
  • npm 安装错误 EPERM 不允许操作

    So when trying to run the angular4 project today my first error was npm install eperm operation not permitted so I thoug
  • 点击事件上的 JQuery .done

    我不是一名 javascript 开发人员 所以请耐心等待我 我需要在 jQuery 之后执行重定向click活动已完成 我有这个 但是申请不了 done to click 将整个事情包裹起来 when以太不起作用 printpng cli
  • shell脚本中${varname}和$varname有什么区别

    我有一个简单的问题 但我想知道两者之间有什么区别 varname and varname 我两者都使用 但我没有看到任何差异可以告诉我何时使用其中之一 Using 变量名称中的 有助于消除执行变量扩展时的歧义 考虑两个变量var and v
  • Java 8 中按映射列表分组

    我有一个这样的列表 List
  • Visual Studio 错误:抱歉,出了点问题 - 安装操作失败

    我试图通过添加 Python 开发和 Node js 开发来修改我的 Visual Studio 但它一直显示 抱歉 出了问题 安装操作失败 并且它不下载和安装这些功能 当我尝试卸载已安装的元素 例如 NET 桌面开发 或尝试卸载 Visu
  • 静态成员和增强序列化

    我在用着Boost 序列化 http www boost org doc libs 1 38 0 libs serialization doc index html归档课程的内容 成员变量之一是静态 std vector 归档和恢复进展顺利
  • “unistd.h”中函数“read”的读取限制是多少?

    标准unix C有这个函数 ssize t read int fd void buf size t count 但是这个 读取 函数一次可以读取的最大字节数是多少 From man read 2 http linux die net man
  • 用于 mac os x 应用程序开发的 aws sdk [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要为 MAC OS X 开发一个应用程序 该应用程序会将所选文件上传到亚马逊网络服务 但为此我需要适
  • 如何列出 Objective-C 中对象的所有字段?

    如果我有一个类 如何列出它的所有实例变量名称 eg interface MyClass NSObject int myInt NSString myString NSMutableArray myArray 我想获取 myInt myStr
  • 检索页面上多个 YouTube 播放器的播放器状态

    我有一个包含许多 YouTube 播放器的 HTML 我订阅 onStateChange 以在用户播放视频时收到通知 function onYouTubePlayerReady playerid var player document ge
  • 没有足够的存储空间来完成此操作

    我有一个带有计时器控件的 asp 页面 定时器控件会触发一些方法来执行 当加载此页面时 出现以下错误 并且计时器控件未触发滴答 我用的是IE9 FF和chrome都没有问题 错误详情如下 有人对这条消息有经验吗 网页错误详细信息 User
  • 如何在scss中使用祖父母选择器

    我需要使用不同颜色的图标将按钮组件设置为 5 种状态 并用于以下 css add member dialog add username to list to list button icon before content url image
  • 识别数据序列根据其他列 UserID 发生变化的情况

    我正在处理数据框df如下 Input TUserId SUID mid sum final sum 115 201 2 7 115 309 1 8 115 404 1 9 209 245 2 10 209 398 2 10 209 510