首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于r中的另一个变量生成标记变量

基于r中的另一个变量生成标记变量
EN

Stack Overflow用户
提问于 2020-02-12 06:02:35
回答 1查看 34关注 0票数 1

我正在尝试生成一个标记变量。下面是我的示例数据集的样子:

代码语言:javascript
运行
复制
data <- data.frame(
  ids = c(1,1,1, 2,2,2, 3,3,3),
  cat = c("A","B","B", "C","B","C", "A","B","A"))

> data
  ids cat
1   1   A
2   1   B
3   1   B
4   2   C
5   2   B
6   2   C
7   3   A
8   3   B
9   3   A

如果没有观察到每个idsC,我需要一个标记变量来标记id

代码语言:javascript
运行
复制
 > data
      ids cat  flag
    1   1   A    0
    2   1   B    0
    3   1   B    0
    4   2   C    1
    5   2   B    1
    6   2   C    1
    7   3   A    0
    8   3   B    0
    9   3   A    0

有什么想法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 06:05:53

按“if”分组后,通过检查“C”是否为“%in%”来创建“标志”,返回逻辑值TRUE/FALSE,并使用as.integer+将其强制为1/0

代码语言:javascript
运行
复制
library(dplyr)
data %>%
     group_by(ids) %>%
     mutate(flag = +('C' %in% cat))
# A tibble: 9 x 3
# Groups:   ids [3]
#    ids cat    flag
#  <dbl> <fct> <int>
#1     1 A         0
#2     1 B         0
#3     1 B         0
#4     2 C         1
#5     2 B         1
#6     2 C         1
#7     3 A         0
#8     3 B         0
#9     3 A         0

或者使用any进行包装

代码语言:javascript
运行
复制
  ... %>%
  mutate(flag = as.integer(any(cat %in% 'C')))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60178042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档