R——根据代码列表对观察结果进行分组

标签 r for-loop

<分区>

我有一个数据集,其中每个观察值都有一个整数“代码”变量,我想将其转换为一个字符“类”变量。这是一个简单的例子来说明我正在尝试做什么。

code.list <- data.frame(code = 1:10, 
                    class = c("Class 1", "Class 2", "Class 3", "Class 4", "Class 5", 
                              "Class 6", "Class 7", "Class 8", "Class 9", "Class 10"))

set.seed(1)
data <- data.frame(code = rbinom(100000, 10, 0.5))

> head(code.list, 4)
  code   class
1    1 Class 1
2    2 Class 2
3    3 Class 3
4    4 Class 4

> head(data, 4)
  code
1    4
2    4
3    5
4    7

我想向 data 添加一个“类”变量,以便每个观察的类与其在 code.list 中对应的“代码”变量相匹配。有没有一种方法可以在不使用 for 循环并迭代每个观察值的情况下做到这一点?

最佳答案

如果我理解你的问题,那么我猜你真的想要查找/合并表,如果是这样那么你可以使用 data.table 来解决这个问题:

library(data.table)
data <- data.table(data)
code.list <- data.table(code.list)
data[code.list, class := i.class, on="code"]

谢谢 Frank,有人指导我在 data.table 中做事有更好的方法,我已经更新了相同的方法。

data[code.list, class := i.class,on="code"]

    > data
        code   class
     #1:    5 Class 5
     #2:    5 Class 5
     #3:    6 Class 6
     #4:    6 Class 6
     #5:    5 Class 5
    ---             
 #99996:    5 Class 5
 #99997:    6 Class 6
 #99998:    8 Class 8
 #99999:    6 Class 6
#100000:    5 Class 5
> 

关于R——根据代码列表对观察结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43478495/

相关文章:

r - R 中的数据透视表不均匀(长度列)

r - 选择 dataTable 中的行以显示 Shiny 中另一个表中的数据

在 R 中重构数据框架

iOS Swift Parse 此查询具有出色的网络连接。你必须等到它完成

javascript - 将 for 循环的索引传递给不同的函数

javascript - 碰撞检查循环在敌人生成后停止循环

sql - 在R中的表中选择行的快速方法?

r - knitr 无法编织 UTF-8 字符 : "These lines contain invalid UTF-8 characters"

performance - 在 Perl 中更快地搜索文件

python - 使用 Python 中的 glob 重命名多个文件(文件已存在)