如何获得R中组内列之间的差异?

地图

我有这个名为mydf. 数据帧被一行称为myid. 所以,我想得到两列行之间的两个值(模数)的差异,CDS并得到如下所示的结果。

mydf<- structure(list(c("myid:AHY03257.1", "176", "myid:YP_009182164.1", 
"308", "myid:YP_717161.1", "9801", "8391", "8060"), c(NA, 2605L, 
NA, 2443L, NA, 9659L, 8029L, 8407L), c("", "CDS", "", "CDS", 
"", "CDS", "CDS", "CDS")), row.names = c(NA, -8L), class = "data.frame")

结果:

myid:AHY03257.1               
                 176 2605 CDS   2429
myid:YP_009182164.1      
                 308 2443 CDS   2135
myid:YP_717161.1       
                9801 9659 CDS   142
                8391 8029 CDS   362
                8060 8407 CDS   347
阿克伦

我们可以用tidyverse. 将列名设置为数据集后,str_detect根据:第一列中出现的逻辑向量(的累积和进行分组,从'V1'中删除第一个观察值,将其转换为numeric并获得与'V2'的绝对差柱子

library(tidyverse)
mydf %>% 
   set_names(paste0('V', seq_along(.))) %>%
   group_by(grp = cumsum(str_detect(V1, ":"))) %>%
   mutate(V4 = abs(V2 - c(NA, as.numeric(V1[-1])))) %>%
   ungroup %>%
   select(-grp) %>%
   set_names(rep("", 4)) # better to have column name, removed to match input data
# A tibble: 8 x 4
#  ``                     `` ``       ``
#  <chr>               <int> <chr> <dbl>
#1 myid:AHY03257.1        NA ""       NA
#2 176                  2605 CDS    2429
#3 myid:YP_009182164.1    NA ""       NA
#4 308                  2443 CDS    2135
#5 myid:YP_717161.1       NA ""       NA
#6 9801                 9659 CDS     142
#7 8391                 8029 CDS     362
#8 8060                 8407 CDS     347

但是,如果警告消息没问题,那么我们可以直接将character列 'V1' 转换为numeric(由于存在非数字元素而发出警告 - 转换为NA)并与 'V2' 列做绝对差异

mydf %>% 
  set_names(paste0("V", seq_along(.))) %>%
  mutate(V4 = abs(V2 - as.numeric(V1)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得列之间的数据之间的差异?

来自分类Dev

计算 R 中组之间的差异

来自分类Dev

如何使用 dplyr 计算列范围内两列的连续组之间的差异

来自分类Dev

如何计算R中列之间的特定差异

来自分类Dev

如何获得行之间的差异

来自分类Dev

如何获得两个excel列之间的差异

来自分类Dev

如何获得R中两列之间的公共值?

来自分类Dev

使用R中的dplyr建立组之间的差异

来自分类Dev

使用R中的dplyr建立组之间的差异

来自分类Dev

如何在.NET中获得两天之间的差异

来自分类Dev

如何在BigQuery中获得连续时间戳之间的差异

来自分类Dev

如何在PHP中获得两天之间的差异

来自分类Dev

如何获得java中2个对象字段之间的差异

来自分类Dev

R:确定组内某些子组的最大值和最小值之间的差异

来自分类Dev

R-如何获得可爱的组之间的关系?

来自分类Dev

如何使用另一列获取值并在MySQL或SQL中获得每一行之间的差异?

来自分类Dev

计算Power BI中组之间的差异

来自分类Dev

如何在几分钟内获得两个字符变量之间的差异

来自分类Dev

R中基于列值的行之间的差异

来自分类Dev

R中基于列值的行之间的差异

来自分类Dev

如何找到Mysql中两列之间的最小差异?

来自分类Dev

R 中 %% 和 % 之间的差异

来自分类Dev

我如何获得R中列表中的组的均值

来自分类常见问题

如何获得PostgreSQL中两个平均值之间的差异,其中平均值在一列上,而最终表按两列分组?

来自分类Dev

如何使用r在以其组ID为条件的单个列中查找多个日期之间的间隔?

来自分类Dev

使用R中的数据表的连续行组之间的差异

来自分类Dev

应用 k 均值来检查 R 中两组之间的差异

来自分类Dev

组中行之间的差异

来自分类Dev

SSRS 2016 - 如何计算组中两个值之间的百分比差异?

Related 相关文章

  1. 1

    如何获得列之间的数据之间的差异?

  2. 2

    计算 R 中组之间的差异

  3. 3

    如何使用 dplyr 计算列范围内两列的连续组之间的差异

  4. 4

    如何计算R中列之间的特定差异

  5. 5

    如何获得行之间的差异

  6. 6

    如何获得两个excel列之间的差异

  7. 7

    如何获得R中两列之间的公共值?

  8. 8

    使用R中的dplyr建立组之间的差异

  9. 9

    使用R中的dplyr建立组之间的差异

  10. 10

    如何在.NET中获得两天之间的差异

  11. 11

    如何在BigQuery中获得连续时间戳之间的差异

  12. 12

    如何在PHP中获得两天之间的差异

  13. 13

    如何获得java中2个对象字段之间的差异

  14. 14

    R:确定组内某些子组的最大值和最小值之间的差异

  15. 15

    R-如何获得可爱的组之间的关系?

  16. 16

    如何使用另一列获取值并在MySQL或SQL中获得每一行之间的差异?

  17. 17

    计算Power BI中组之间的差异

  18. 18

    如何在几分钟内获得两个字符变量之间的差异

  19. 19

    R中基于列值的行之间的差异

  20. 20

    R中基于列值的行之间的差异

  21. 21

    如何找到Mysql中两列之间的最小差异?

  22. 22

    R 中 %% 和 % 之间的差异

  23. 23

    我如何获得R中列表中的组的均值

  24. 24

    如何获得PostgreSQL中两个平均值之间的差异,其中平均值在一列上,而最终表按两列分组?

  25. 25

    如何使用r在以其组ID为条件的单个列中查找多个日期之间的间隔?

  26. 26

    使用R中的数据表的连续行组之间的差异

  27. 27

    应用 k 均值来检查 R 中两组之间的差异

  28. 28

    组中行之间的差异

  29. 29

    SSRS 2016 - 如何计算组中两个值之间的百分比差异?

热门标签

归档