当前位置: 首页 > 知识库问答 >
问题:

使用distinct和ifelse dplyr进行突变

卞俊贤
2023-03-14

我有一个名称重复的数据集。如果名称重复,我想创建一个值为1(TRUE)或0(FALSE)的新列。

这是我使用的代码:

library(dplyr)

dat %>% mutate(Duplicated = ifelse(distinct(`First name` == T, 0, 1)))

Error in mutate_impl(.data, dots) : Evaluation error: no applicable method for 'distinct_' applied to an object of class "logical".

或者

dat %>% mutate(Duplicated = ifelse(distinct(`First name`), 0, 1))

Error in mutate_impl(.data, dots) : Evaluation error: no applicable method for 'distinct_' applied to an object of class "logical".

然而,我得到了上面可以看到的错误。

另一个想法是使用group_by,然后计算计数。喜欢:

dat %>%
  group_by(`Last name`) %>%
  summarise(N = n()) %>%
  ungroup() %>%
  mutate(Dpulicated = ifelse(N > 1, 1,0)

但是,它不能返回原始数据帧后group_by

共有1个答案

段渊
2023-03-14

与其< code > summary(N = N()),不如< code>mutate(N = n())。

我会这样做:

library(dplyr)

df = data.frame("last_name" = c("Smith","James","Smith","Smith","Messi"),
                "value" = c(15,26,7,38,90))

df = df %>%
  group_by(last_name) %>%
  mutate(n = n(),
         is_dupe = ifelse(n > 1,TRUE,FALSE))
 类似资料:
  • 我觉得应该有一种有效的方法使用和使用来修改新列,但不能使其工作。 我知道在中使用“有点试验性”(就像在本文中一样),但如果有任何建议,我将不胜感激。 不起作用:

  • 我已经更新了dplyr(现在是0.7.1),我的很多旧代码都不能用了,因为mutate_each已经被弃用了。我曾经用mutate_each做类似这样的事情(代码如下),使用列索引。我会在数百个专栏中这样做。而我就是搞不清楚如何用mutate_at正确使用vars参数。我看到的所有例子都使用了列名...我不想这么做。我确信这是一个简单的答案,但是我已经花了太多的时间试图弄明白它,并且将非常感谢一些

  • 问题内容: 我在SQL Server 2008中具有下表: 选择具有相同dtIn日期的相同类型的所有记录的ID,并按stOut升序排列: 但这给了我一个错误: 如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中 我尝试将ORDER BY放在不同的地方,但这似乎不起作用。我在这里做错了什么? 问题答案: 当您将其范围缩小到单个ID时,您就有可能每个ID可能都具有多个

  • 我一直在反复讨论我们系统中的一个问题,即使在论坛上进行了一些研究和多次测试,我们似乎也无法解决这个问题。 我会尽量弄清楚我们在处理什么 我们有一个带有路由的主服务,该路由从activemq队列读取数据(使用嵌入式代理的spring boot)将其发送到路由(B),然后将所有内容发送到最终路由(C)。路由(B)依赖于服务。 骆驼版:3.3.0Spring靴版:2.3.3。发布 路线A: 路线B: 路

  • 我是碰撞检测新手,在游戏原型中遇到了一些问题。我已经做了好几天了。经过一些阅读和辅导,我仍然不明白我做错了什么,所以这里的其他人应该能够解释我做错了什么。 游戏运行时,屏幕上有10个绿色矩形(NPC)和1个红色矩形(吸血鬼)。作为一个起点,我希望吸血鬼“喝血”,当它通过愚蠢的运气随机穿过npc时。如果我不注释掉冲突检测方法,代码中就会出现一个nullpointexception。 公共类屏幕扩展J

  • 我试图计算在一个Tibble中源向量和比较向量之间的Jaccard相似度。 jaccard_sim中的所有值都为零。但是,如果我们运行类似这样的东西,我们得到第一个条目的正确的Jaccard相似度为0.2: