如何在基于另一列的一列中突出显示顺序字符串

一世

我的数据是

    df <- structure(list(M1 = c(4L, 11L, 11L, 11L, 11L, 11L, 11L, 16L, 
16L, 16L, 16L, 16L, 16L, 16L), M2 = structure(c(14L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L), .Label = c(" B135", 
" B168", " B172", " B299", " B300", " B301", " B335", " B336", 
" B364", " B566", " B567", " B590", " B591", "A"), class = "factor"), 
    N = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L), N2 = c(470L, 14L, 12L, 16L, 9L, 14L, 14L, 24L, 15L, 
    32L, 193L, 76L, 10L, 9L)), .Names = c("M1", "M2", "N", "N2"
), class = "data.frame", row.names = c(NA, -14L))

数据看起来像这样

>df
#   M1    M2 N  N2
#1   4     A 1 470
#2  11  B135 1  14
#3  11  B168 1  12
#4  11  B172 1  16
#5  11  B299 1   9
#6  11  B300 1  14
#7  11  B301 1  14
#8  16  B335 1  24
#9  16  B336 1  15
#10 16  B364 1  32
#11 16  B566 1 193
#12 16  B567 1  76
#13 16  B590 1  10
#14 16  B591 1   9

我想要做的是检查M1并基于M1突出显示我想在此示例中基于与M1相似的值来评估顺序的M2

#   M1    M2  N  N2
#1   4    A   1  470

所以这只是一个,我不需要强调它

#2  11  B135 1  14
#3  11  B168 1  12
#4  11  B172 1  16
#5  11  B299* 1   9
#6  11  B300* 1  14
#7  11  B301* 1  14

在本节中(来自M1的所有数据均为11),B299,B300和B301是连续的(彼此重复),因此我想用例如星号突出显示

#8  16  B335* 1  24
#9  16  B336* 1  15
#10 16  B364  1  32
#11 16  B566**  1 193
#12 16  B567**  1  76
#13 16  B590***  1  10
#14 16  B591***  1   9

在本节中(来自M1的所有值均为16),B335和B336是连续的,因此我用一个星标突出显示它们,然后B566和B567也用**星进行连续显示,因为它们与第一个不同,对于第三个连续组相同等等

好的

这是一种尝试,它假定值按照示例中的顺序进行排序:

 highlight_seq <- function(x){
        #get sequences of numbers and get rid of NAs
        num_seq <- (diff(as.numeric(gsub("\\D", "", x)))==1)*1
        num_seq[is.na(num_seq)] <- 0

        #to figure out the number of each sequence, use rle
        num_seq <- rle(num_seq)

        #replace 1s by the cumsum
        num_seq$values[which(num_seq$values!=0)]=cumsum(num_seq$values)[which(num_seq$values!=0)]
        num_seq <- inverse.rle(num_seq)

        #since diff was initially used, add the first value of each sequence
        num_seq <- c(0,num_seq)
        num_seq[which(num_seq!=0)-1] <- num_seq[which(num_seq!=0)] 

        #paste asterisks in after the sequences
        return(paste0(x,sapply(num_seq,function(p) paste(rep("*",p),collapse=""))))
}

library(dplyr)
df %>% group_by(M1) %>% mutate(M2=highlight_seq(M2))


    M1      M2 N  N2
1   4       A 1 470
2  11    B135 1  14
3  11    B168 1  12
4  11    B172 1  16
5  11   B299* 1   9
6  11   B300* 1  14
7  11   B301* 1  14
8  16    B335 1  24
9  16   B363* 1  15
10 16   B364* 1  32
11 16  B566** 1 193
12 16  B567** 1  76
13 16  B568** 1  10
14 16  B569** 1   9

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在基于另一列的一列中突出显示顺序字符串

来自分类Dev

如何在基于另一列中的字符串的R中的data.table中添加列?

来自分类Dev

如何基于另一列中的索引来操作一列中的子字符串

来自分类Dev

如何在一列的开头和另一列的末尾添加字符串?

来自分类Dev

如何从R中另一列的子字符串中创建一列?

来自分类Dev

如何用另一列中的字符串替换一列中的值?

来自分类Dev

如何确定一列中的字符串是否在另一列中?

来自分类Dev

Excel:如何从另一列中的一列搜索子字符串

来自分类Dev

OpenRefine-替换一列中的字符串值而不基于另一列中的值

来自分类Dev

在R中将一列中的字符串提取到另一列中

来自分类Dev

从另一列中删除字符串元素

来自分类Dev

如何创建一列字符串,包括另一列的值

来自分类Dev

如果一列的字符串包含熊猫数据框中另一列的单词,如何删除整行

来自分类Dev

如何在包含特定字符串的最后一列之后添加一列?

来自分类Dev

将一列中的字符串与另一列中的部分字符串匹配

来自分类Dev

创建一个基于R中的另一列对从一列中提取的字符串文本进行分组的列

来自分类Dev

Oracle SQL,在包含来自另一列的字符串的一列中搜索字符串

来自分类Dev

如何用文件的一列中的一列替换复杂的字符串?

来自分类Dev

如何检查和删除R中另一列中的字符串是否匹配

来自分类Dev

使用基于另一列的值构建的字符串更新数据库列

来自分类Dev

如何删除Excel另一列中的子字符串?

来自分类Dev

如何删除Excel另一列中的子字符串?

来自分类Dev

如何找到子字符串值并复制到 SQL 的另一列中

来自分类Dev

如何提取R中的特定字符串并放入另一列?

来自分类Dev

如何根据postgresql中的另一列对字符串聚合进行排序?

来自分类Dev

如何在 Spark Dataframe 上的字符串中添加一列字符的索引?

来自分类Dev

如果包含的单词在另一列中,如何在Excel中突出显示单元格

来自分类Dev

在底部按特定字符串排序,然后在另一列按字母顺序排序

来自分类Dev

如何对基于另一列的同一列的多个单元格求和并在另一列中显示?

Related 相关文章

  1. 1

    如何在基于另一列的一列中突出显示顺序字符串

  2. 2

    如何在基于另一列中的字符串的R中的data.table中添加列?

  3. 3

    如何基于另一列中的索引来操作一列中的子字符串

  4. 4

    如何在一列的开头和另一列的末尾添加字符串?

  5. 5

    如何从R中另一列的子字符串中创建一列?

  6. 6

    如何用另一列中的字符串替换一列中的值?

  7. 7

    如何确定一列中的字符串是否在另一列中?

  8. 8

    Excel:如何从另一列中的一列搜索子字符串

  9. 9

    OpenRefine-替换一列中的字符串值而不基于另一列中的值

  10. 10

    在R中将一列中的字符串提取到另一列中

  11. 11

    从另一列中删除字符串元素

  12. 12

    如何创建一列字符串,包括另一列的值

  13. 13

    如果一列的字符串包含熊猫数据框中另一列的单词,如何删除整行

  14. 14

    如何在包含特定字符串的最后一列之后添加一列?

  15. 15

    将一列中的字符串与另一列中的部分字符串匹配

  16. 16

    创建一个基于R中的另一列对从一列中提取的字符串文本进行分组的列

  17. 17

    Oracle SQL,在包含来自另一列的字符串的一列中搜索字符串

  18. 18

    如何用文件的一列中的一列替换复杂的字符串?

  19. 19

    如何检查和删除R中另一列中的字符串是否匹配

  20. 20

    使用基于另一列的值构建的字符串更新数据库列

  21. 21

    如何删除Excel另一列中的子字符串?

  22. 22

    如何删除Excel另一列中的子字符串?

  23. 23

    如何找到子字符串值并复制到 SQL 的另一列中

  24. 24

    如何提取R中的特定字符串并放入另一列?

  25. 25

    如何根据postgresql中的另一列对字符串聚合进行排序?

  26. 26

    如何在 Spark Dataframe 上的字符串中添加一列字符的索引?

  27. 27

    如果包含的单词在另一列中,如何在Excel中突出显示单元格

  28. 28

    在底部按特定字符串排序,然后在另一列按字母顺序排序

  29. 29

    如何对基于另一列的同一列的多个单元格求和并在另一列中显示?

热门标签

归档