【问题标题】:dplyr mutate new column according to the value of existing columnsdplyr 根据现有列的值改变新列
【发布时间】:2021-06-02 22:01:27
【问题描述】:

我需要根据两个现有列的值添加一个新列。

我的数据集如下所示:

    V1   V2  V3
1   1    I
2   2    C
3   1    C
4   1    A
5   2    C
...

新列 V3 应遵循以下条件: '''

if (V1==2 & V2==C) {
V3 <- 1
} else { V3 <- 0
}

'''

但是,当我尝试创建列时,出现以下错误: '''"求值错误:比较 (1) 仅适用于原子和列表类型。"'''

理想情况下,结果应该是这样的:

   V1  V2  V3
1   1   I   0
2   2   C   1
3   1   C   0
4   1   A   0
5   2   C   1
...

非常感谢!

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    我不确定您的数据是tibble 还是data.frame,但您可以运行str(data) 来查看其中是否没有列表。如果它是一个简单的数据框,那么这应该可以工作:

    > data <- data.frame(V1 = c(1,2,1,1,2), V2 = c("I", "C","C","A","C"))
    
    > data%>%mutate(
       V3 = ifelse(V1 %in% 2 & V2 %in% 'C', 1, 0)
     )
    
      V1 V2 V3
    1  1  I  0
    2  2  C  1
    3  1  C  0
    4  1  A  0
    5  2  C  1
    

    【讨论】:

      猜你喜欢
      • 2023-02-14
      • 2023-04-06
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多