如何计算和删除跨列的相似字符串

一世

我有一个包含许多列的数据。例如这是三列

df<-structure(list(V1 = structure(c(5L, 1L, 7L, 3L, 2L, 4L, 6L, 6L
), .Label = c("CPSIAAAIAAVNALHGR", "DLNYCFSGMSDHR", "FPEHELIVDPQR", 
"IADPDAVKPDDWDEDAPSK", "LWADHGVQACFGR", "WGEAGAEYVVESTGVFTTMEK", 
"YYVTIIDAPGHR"), class = "factor"), V2 = structure(c(5L, 2L, 
7L, 3L, 4L, 6L, 1L, 1L), .Label = c("", "CPSIAAAIAAVNALHGR", 
"GCITIIGGGDTATCCAK", "HVGPGVLSMANAGPNTNGSQFFICTIK", "LLELGPKPEVAQQTR", 
"MVCCSAWSEDHPICNLFTCGFDR", "YYVTIIDAPGHR"), class = "factor"), 
    V3 = structure(c(4L, 3L, 2L, 4L, 3L, 1L, 1L, 1L), .Label = c("", 
    "AVCMLSNTTAIAEAWAR", "DLNYCFSGMSDHR", "FPEHELIVDPQR"), class = "factor")), .Names = c("V1", 
"V2", "V3"), class = "data.frame", row.names = c(NA, -8L))

- 第一列,我们不看任何其他列,我们只计算有多少个字符串并保留唯一的

  • 第二列,我们保留唯一的,并且我们删除已经在第一列中的那些

  • 第三列,我们保持唯一性,并删除第一列和第二列中的字符串

这将继续与我们所拥有的列一样多

例如对于这个数据,我们将有以下内容

 Column 1              Column 2                    Column 3
LWADHGVQACFGR
CPSIAAAIAAVNALHGR     LLELGPKPEVAQQTR              AVCMLSNTTAIAEAWAR
YYVTIIDAPGHR          GCITIIGGGDTATCCAK 
FPEHELIVDPQR          HVGPGVLSMANAGPNTNGSQFFICTIK   
DLNYCFSGMSDHR         MVCCSAWSEDHPICNLFTCGFDR   
IADPDAVKPDDWDEDAPSK     
WGEAGAEYVVESTGVFTTMEK   
索托斯

这是通过的解决方案tidyverse

library(tidyverse)

df1 <- df %>% 
 gather(var, string) %>% 
 filter(string != '' & !duplicated(string)) %>% 
 group_by(var) %>% 
 mutate(cnt = seq(n())) %>% 
 spread(var, string) %>%
 select(-cnt)

这使

# A tibble: 7 x 4
    cnt                    V1                          V2                V3
* <int>                 <chr>                       <chr>             <chr>
1     1         LWADHGVQACFGR             LLELGPKPEVAQQTR AVCMLSNTTAIAEAWAR
2     2     CPSIAAAIAAVNALHGR           GCITIIGGGDTATCCAK              <NA>
3     3          YYVTIIDAPGHR HVGPGVLSMANAGPNTNGSQFFICTIK              <NA>
4     4          FPEHELIVDPQR     MVCCSAWSEDHPICNLFTCGFDR              <NA>
5     5         DLNYCFSGMSDHR                        <NA>              <NA>
6     6   IADPDAVKPDDWDEDAPSK                        <NA>              <NA>
7     7 WGEAGAEYVVESTGVFTTMEK                        <NA>              <NA>

您可以使用colSums来获取字符串的数量,

colSums(!is.na(df1))
#V1 V2 V3 
# 7  4  1 

通过基本 R 的类似方法,将字符串保存在列表中是,

df[] <- lapply(df, as.character)
d1 <- stack(df)
d1 <- d1[d1$values != '' & !duplicated(d1$values),]
l1 <- unstack(d1, values ~ ind)

lengths(l1)
#V1 V2 V3 
# 7  4  1

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何快速删除相似的字符串?

来自分类Dev

如何快速删除相似的字符串?

来自分类Dev

如何上下移动字符串并从中删除相似的字符串?

来自分类Dev

如何上下移动字符串并从中删除相似的字符串?

来自分类Dev

字符串替换:如何处理相似的字符串和空格

来自分类Dev

如何从包含数字和字符的pandas列中的字符串中删除子字符串

来自分类Dev

如何组合相似字符串的数值?

来自分类Dev

如何从汇编中的字符串计算字符和行?

来自分类Dev

如何计算字符串的数字和字符?

来自分类Dev

检查和删除无类型的Jaro字符串相似性

来自分类Dev

如何计算两个字符串向量之间的余弦相似度

来自分类Dev

如何计算两个字符串向量之间的余弦相似度

来自分类Dev

如何搜索和删除字符串中的字符

来自分类Dev

计算相似的子字符串SQL查询

来自分类Dev

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

来自分类Dev

如何使用pandas / python从日期和字符串的列混合中删除时间戳?

来自分类Dev

如何确定python中源字符串和多重字符串之间的相似性?

来自分类Dev

如何确定python中源字符串和多重字符串之间的相似性?

来自分类Dev

如何计算字符串中的字母,数字和空格

来自分类Dev

如何删除字符`;`左边的字符串和包含的字符串`U`然后显示它?

来自分类Dev

如何使循环基于列中的字符串计算函数?

来自分类Dev

如何计算字符串 [][] 中每列的字母数?

来自分类Dev

如何从字符串中删除\ n和\ r

来自分类Dev

Swift:如何识别和删除字符串中的介词

来自分类Dev

如何从字符串中删除空格和重复的数字

来自分类Dev

如何从字符串中删除主题标签和URL

来自分类Dev

如何检查和删除字符串中的html标签

来自分类Dev

如何删除字符串开头和结尾的双引号

来自分类Dev

如何拆分和删除列表中的字符串?

Related 相关文章

  1. 1

    如何快速删除相似的字符串?

  2. 2

    如何快速删除相似的字符串?

  3. 3

    如何上下移动字符串并从中删除相似的字符串?

  4. 4

    如何上下移动字符串并从中删除相似的字符串?

  5. 5

    字符串替换:如何处理相似的字符串和空格

  6. 6

    如何从包含数字和字符的pandas列中的字符串中删除子字符串

  7. 7

    如何组合相似字符串的数值?

  8. 8

    如何从汇编中的字符串计算字符和行?

  9. 9

    如何计算字符串的数字和字符?

  10. 10

    检查和删除无类型的Jaro字符串相似性

  11. 11

    如何计算两个字符串向量之间的余弦相似度

  12. 12

    如何计算两个字符串向量之间的余弦相似度

  13. 13

    如何搜索和删除字符串中的字符

  14. 14

    计算相似的子字符串SQL查询

  15. 15

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

  16. 16

    如何使用pandas / python从日期和字符串的列混合中删除时间戳?

  17. 17

    如何确定python中源字符串和多重字符串之间的相似性?

  18. 18

    如何确定python中源字符串和多重字符串之间的相似性?

  19. 19

    如何计算字符串中的字母,数字和空格

  20. 20

    如何删除字符`;`左边的字符串和包含的字符串`U`然后显示它?

  21. 21

    如何使循环基于列中的字符串计算函数?

  22. 22

    如何计算字符串 [][] 中每列的字母数?

  23. 23

    如何从字符串中删除\ n和\ r

  24. 24

    Swift:如何识别和删除字符串中的介词

  25. 25

    如何从字符串中删除空格和重复的数字

  26. 26

    如何从字符串中删除主题标签和URL

  27. 27

    如何检查和删除字符串中的html标签

  28. 28

    如何删除字符串开头和结尾的双引号

  29. 29

    如何拆分和删除列表中的字符串?

热门标签

归档