gpt4 book ai didi

r - 根据另一个表中的值添加变量

转载 作者:行者123 更新时间:2023-12-02 01:08:55 25 4
gpt4 key购买 nike

我有两张 table 。第一个列出所有个人。

IND
1
2
3
4
5

第二张表的行是每个人所做的 Action (从一个地方到另一个地方)(每个人都做了一个或多个 Action )。第一列是 IND 编号;另外两个是原产地 (PLACE_A)(A、B 或 C)和目的地 (PLACE_B)(A、B 或 C)。

IND PLACE_A PLACE_B
1 A B
1 B A
1 A C
2 C A
2 A C
3 B A
3 A C
3 C A
3 A C
3 C A
4 C A
4 A C
4 C A
4 A C
5 B C
5 C A

我想在第一个表中有一个新列,它会告诉我某个人曾经去过某个特定的地方(假设是 B)。我想不通。

IND LIVED_B
1 TRUE
2 FALSE
3 TRUE
4 FALSE
5 TRUE

最佳答案

使用数据表...

library(data.table)
setDT(DF2)

indDT = data.table(IND = 1:5)
placeDT = data.table(PLACE = LETTERS[1:3])
DT = DF2[, .(PLACE = c(PLACE_A, PLACE_B[.N])), by=IND][, T := rowid(IND)][]

然后看看每个人有没有到过每个地方...

DT[, table(
IND = factor(IND, levels = indDT$IND),
PLACE = factor(PLACE, levels = placeDT$PLACE)
) > 0L ]

PLACE
IND A B C
1 TRUE TRUE TRUE
2 TRUE FALSE TRUE
3 TRUE TRUE TRUE
4 TRUE FALSE TRUE
5 TRUE TRUE TRUE

factor 调用确保显示所有级别,即使数据集中没有人访问过的地方也是如此。

关于r - 根据另一个表中的值添加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118435/

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