gpt4 book ai didi

r - 如果列值与另一个向量中的值匹配,则设置标志

转载 作者:行者123 更新时间:2023-12-04 08:10:38 25 4
gpt4 key购买 nike

假设我有一个data.frame,如下所示:

a <- data.frame(id=c(1,3,4,5,7,8,9,6,54,3,5,6,87,6))

我有一个矢量 temp,如下所示:
temp<-c(1,3,5,9)

现在,我想在我的data.frame上创建一个新列 flag,它应该是 1,其中 idtemp中,而 0在其他地方。这是我尝试的:
a$flag <- ifelse(a$id==temp, 1, 0)

所需的输出应为 (1,1,0,1,0,0,1,0,0,1,1,0,0,0)

但是从我上面的代码来看, flag没有得到正确的更新。我在这里想念什么?
我可以/应该使用 %in%吗?如果是这样,怎么办?

感谢您的任何帮助

最佳答案

我认为这就是您要寻找的。在制作data.frame时,存在两个问题:

a <- data.frame(id = c(1,3,4,5,7,8,9,6,54,3,5,6,87,6),
flag = 0)

然后将 flag的值更新为1(其中 idtemp中),您可以使用 [和逻辑测试 %in%索引这些值,并将它们分配为1
a$flag[a$id %in% temp] <- 1

a
# id flag
# 1 1 1
# 2 3 1
# 3 4 0
# 4 5 1
# 5 7 0
# 6 8 0
# 7 9 1
# 8 6 0
# 9 54 0
# 10 3 1
# 11 5 1
# 12 6 0
# 13 87 0
# 14 6 0

关于r - 如果列值与另一个向量中的值匹配,则设置标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415045/

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