gpt4 book ai didi

r - 在 R 中,指示另一列的每个 ID 是否具有多个唯一值

转载 作者:行者123 更新时间:2023-12-04 11:54:44 27 4
gpt4 key购买 nike

背景
这是一个数据集,d :

d <- data.frame(ID = c("a","a","b","b"),                  
product_code = c("B78","X31","C12","C12"),
stringsAsFactors=FALSE)
它看起来像这样:
enter image description here
问题和期望的输出
我正在尝试制作一个指标列 multiple_products标记为 1ID s 具有多个独特的 product_code0对于那些没有。这是我要找的:
what_i_want
不过,我的尝试还没有奏效。
我试过的
这是我当前的代码:
d <- d %>% 
group_by(ID) %>%
mutate(multiple_products = if_else(length(unique(d$product_code)) > 1, 1, 0)) %>%
ungroup()
这是结果:
what_i_have
有什么想法吗?

最佳答案

d$应该删除,因为这将通过删除组属性来提取整个列。还有n_distinct .另外,不需要ifelseif_else因为逻辑值( TRUE/FALSE )可以直接强制为 1/0因为这些是使用 as.integer 的存储值或 +

library(dplyr)
d %>%
group_by(ID) %>%
mutate(multiple_products = +(n_distinct(product_code) > 1)) %>%
ungroup()
-输出
# A tibble: 4 x 3
ID product_code multiple_products
<chr> <chr> <int>
1 a B78 1
2 a X31 1
3 b C12 0
4 b C12 0

关于r - 在 R 中,指示另一列的每个 ID 是否具有多个唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69199879/

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