如何检查数据框的列的每个单元格(列表)在R中是否唯一?

学术用户

我有一个非常大的数据,我想做的是检查列表是否具有一个字符串多个值:请考虑以下数据帧:

df1 <- structure(list(id = 1:3, 
                      book_id = c("[\"19167120\",\"book\", \"237494310\",\"195166798\",\"book\",\"book.a\"]", 
                                  "[\"19167120\",\"237494310\",\"story\",\"book\",\"19167120\"]", "[]")), 
                 .Names = c("id", "book_id"), 
                 class = "data.frame", 
                 row.names = c(NA, -3L))

这是:

     id                                                      book_id
1  1 ["19167120","book", "237494310","195166798","book","book.a"]
2  2           ["19167120","237494310","story","book","19167120"]
3  3                                                           []

我想做的是检查book_id是否有任何列表值具有多个字符串值,例如,在这里:字符串值"19167120"对于第二行重复。并为每个单元格提取它们,然后从每个单元格中将其删除

输出:两个单独的数据框:

   id                                                          book_id      duplicate
1:  1 ["19167120", "book", "237494310", "195166798", "book", "book.a"]     "book"
2:  2           ["19167120", "237494310", "story", "book", "19167120"] "19167120"
3:  3                                                               []        0

  id                                                  book_id
1:  1 ["19167120", "book", "237494310", "195166798", "book.a"]
2:  2               ["19167120", "237494310", "story", "book"]
3:  3                                                       []  

我知道我应该使用anyduplicated()unique()为了得到我的答案,但是我在他们周围工作,无法解决问题。

编辑:Gregor的第一个建议将是这样,但是如果有人能像我先解释的那样帮助我获得输出,我将不胜感激,

id     book_id
1:  1  "19167120"
2:  1 "237494310"
3:  1 "195166798"
4:  2  "19167120"
5:  2 "237494310"
6:  2  "19167120"
> unique(df1)
   id     book_id
1:  1  "19167120"
2:  1 "237494310"
3:  1 "195166798"
4:  2  "19167120"
5:  2 "237494310"
> duplicated(df1)
[1] FALSE FALSE FALSE FALSE FALSE  TRUE
A5C1D2H2I1M1N2O1R2T1

这是一种替代方法,与从“长”数据集开始并从那里开始的想法有关。

这是您的长数据集。

library(splitstackshape)
x <- cSplit(df1, "book_id", ",", "long")[, book_id := gsub(
    "[][]", "", book_id)]

在这里,我们添加带有重复值的“重复”列:

x[, duped := paste(unique(book_id[duplicated(book_id)], 
                   collapse = ", ")), by = id]

现在,我们可以轻松创建您的第一个所需的输出:

dupedX <- x[, list(book_id = sprintf("[%s]", paste(book_id, collapse = ", ")),
                   duped = paste(unique(duped), collapse = ", ")), by = id]
dupedX
#    id                                book_id      duped
# 1:  1 ["19167120", "237494310", "195166798"]         NA
# 2:  2  ["19167120", "237494310", "19167120"] "19167120"
# 3:  3                                     []         NA

还有您的第二个:

uniqueX <- x[, list(book_id = sprintf(
  "[%s]", paste(unique(book_id), collapse = ", "))), by = id]
uniqueX
#    id                                book_id
# 1:  1 ["19167120", "237494310", "195166798"]
# 2:  2              ["19167120", "237494310"]
# 3:  3                                     []

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为每个熊猫数据框单元格的字符串列表分配唯一值

来自分类Dev

VBA需要检查Y列中的每个单元格是否来自另一个工作表的列表

来自分类Dev

如何检查单元格是否有列表框

来自分类Dev

汇总熊猫数据框中的列,其中每个单元格值都是一个列表

来自分类Dev

R:如何检查列表中的每个元素是否部分匹配数据框中的一列?

来自分类Dev

每个单元格包含列表时如何计算熊猫中唯一值的数量

来自分类Dev

将函数应用于R中数据框的列中的每个单元格

来自分类Dev

在Excel中,如何检查单元格是否在值列表(单元格范围)中

来自分类Dev

如何选择列中单元格的唯一值

来自分类Dev

将包含列表的数据帧列中的每个单元格转换为数据帧中的一行

来自分类Dev

如何在1 x 50数据框中打印唯一的非空单元格?蟒蛇

来自分类Dev

如何检查一个数据集中的单元格是否存在于另一个数据集中的变量/列中?

来自分类Dev

获取每个单元格具有多个值R的列的唯一值

来自分类Dev

在excel或R中为给定范围的每个单元格中创建唯一值

来自分类Dev

如何将python列表附加到每个包含数组的pandas数据框单元格?

来自分类Dev

检查一行中的每个单元格范围是否包含相同的值

来自分类Dev

拆分数据框中的每个单元格

来自分类Dev

R中数据框中的每个单元格分隔元素

来自分类Dev

使用一组数据框中的每一列的每个单元格创建最大值的新数据框

来自分类Dev

如何遍历 a 列中的单元格以从每个单元格中的数据库返回值

来自分类Dev

如何在R中的数据框中将每个唯一值的列值转换为行?

来自分类Dev

如何检查单元格中的元素是否被检查?

来自分类Dev

如何在不循环的情况下替换数据框中每个单元格的值

来自分类Dev

R-在新数据框中:如果单元格与同一行的另一列匹配,则

来自分类Dev

如何检查单元格中是否仅包含特定列表中的字符?

来自分类Dev

如何检查单元格中是否仅包含特定列表中的字符?

来自分类Dev

如何使用单元格优先计算重复列表中的唯一值-Google Spreadsheets

来自分类Dev

检查列中的单元格是否重复并检查另一列中的单元格是否为 0 vba

来自分类Dev

用单元格中的列表替换熊猫数据框

Related 相关文章

  1. 1

    为每个熊猫数据框单元格的字符串列表分配唯一值

  2. 2

    VBA需要检查Y列中的每个单元格是否来自另一个工作表的列表

  3. 3

    如何检查单元格是否有列表框

  4. 4

    汇总熊猫数据框中的列,其中每个单元格值都是一个列表

  5. 5

    R:如何检查列表中的每个元素是否部分匹配数据框中的一列?

  6. 6

    每个单元格包含列表时如何计算熊猫中唯一值的数量

  7. 7

    将函数应用于R中数据框的列中的每个单元格

  8. 8

    在Excel中,如何检查单元格是否在值列表(单元格范围)中

  9. 9

    如何选择列中单元格的唯一值

  10. 10

    将包含列表的数据帧列中的每个单元格转换为数据帧中的一行

  11. 11

    如何在1 x 50数据框中打印唯一的非空单元格?蟒蛇

  12. 12

    如何检查一个数据集中的单元格是否存在于另一个数据集中的变量/列中?

  13. 13

    获取每个单元格具有多个值R的列的唯一值

  14. 14

    在excel或R中为给定范围的每个单元格中创建唯一值

  15. 15

    如何将python列表附加到每个包含数组的pandas数据框单元格?

  16. 16

    检查一行中的每个单元格范围是否包含相同的值

  17. 17

    拆分数据框中的每个单元格

  18. 18

    R中数据框中的每个单元格分隔元素

  19. 19

    使用一组数据框中的每一列的每个单元格创建最大值的新数据框

  20. 20

    如何遍历 a 列中的单元格以从每个单元格中的数据库返回值

  21. 21

    如何在R中的数据框中将每个唯一值的列值转换为行?

  22. 22

    如何检查单元格中的元素是否被检查?

  23. 23

    如何在不循环的情况下替换数据框中每个单元格的值

  24. 24

    R-在新数据框中:如果单元格与同一行的另一列匹配,则

  25. 25

    如何检查单元格中是否仅包含特定列表中的字符?

  26. 26

    如何检查单元格中是否仅包含特定列表中的字符?

  27. 27

    如何使用单元格优先计算重复列表中的唯一值-Google Spreadsheets

  28. 28

    检查列中的单元格是否重复并检查另一列中的单元格是否为 0 vba

  29. 29

    用单元格中的列表替换熊猫数据框

热门标签

归档