gpt4 book ai didi

r - 如何对数据进行去分类和重新分类?

转载 作者:行者123 更新时间:2023-12-04 11:30:32 24 4
gpt4 key购买 nike

我使用的一些数据包含敏感信息(人名、日期、地点等)。但有时我需要与其他人分享“数字”以获得统计分析的帮助,或者在我无法控制谁查看数据的更强大的机器上处理它。

理想情况下,我想这样工作:

  • 将数据读入 R(查看、清理等)
  • 选择一个我想要解密的数据框,通过一个包运行它并接收两个"file":解密的数据和一个翻译文件。后者我会留着自己。
  • 解密后的数据可以毫无顾虑地共享、操作和处理。
  • 我将处理后的数据与翻译文件一起重新分类。

  • 我想这在上传数据以“在云中”(亚马逊等)进行处理时也很有用。

    你遇到过这种情况吗?我首先想到自己编写一个“随机化”函数,但后来我意识到这可以做到多么复杂(例如,在不丢失顺序的情况下抵消时间戳)。也许已经有一个定义的方法或工具?

    感谢所有在 Stack Overflow 上为 [r]-tag 做出贡献的人!

    最佳答案

    一种方法是使用 match .首先我制作一个小数据框:

    foo <- data.frame( person=c("Mickey","Donald","Daisy","Scrooge"), score=rnorm(4))
    foo
    person score
    1 Mickey -0.07891709
    2 Donald 0.88678481
    3 Daisy 0.11697127
    4 Scrooge 0.31863009

    然后我制作一个 key :
    set.seed(100)
    key <- as.character(foo$person[sample(1:nrow(foo))])

    您显然必须将这个 key 保存在某个地方。现在我可以对人进行编码:
    foo$person <- match(foo$person, key)
    foo
    person score
    1 2 0.3186301
    2 1 -0.5817907
    3 4 0.7145327
    4 3 -0.8252594

    如果我再次想要人名,我可以索引 key :
    key[foo$person]
    [1] "Mickey" "Donald" "Daisy" "Scrooge"

    或使用 tranform ,只要人员 ID 保持不变,如果数据发生更改,这也适用:
    foo <-rbind(foo,foo[sample(1:4),],foo[sample(1:4,2),],foo)
    foo
    person score
    1 2 0.3186301
    2 1 -0.5817907
    3 4 0.7145327
    4 3 -0.8252594
    21 1 -0.5817907
    41 3 -0.8252594
    31 4 0.7145327
    15 2 0.3186301
    32 4 0.7145327
    16 2 0.3186301
    11 2 0.3186301
    12 1 -0.5817907
    13 4 0.7145327
    14 3 -0.8252594
    transform(foo, person=key[person])
    person score
    1 Mickey 0.3186301
    2 Donald -0.5817907
    3 Daisy 0.7145327
    4 Scrooge -0.8252594
    21 Donald -0.5817907
    41 Scrooge -0.8252594
    31 Daisy 0.7145327
    15 Mickey 0.3186301
    32 Daisy 0.7145327
    16 Mickey 0.3186301
    11 Mickey 0.3186301
    12 Donald -0.5817907
    13 Daisy 0.7145327
    14 Scrooge -0.8252594

    关于r - 如何对数据进行去分类和重新分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066912/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com