创建一个以因子级别为条件的ifelse语句

时间:2018-04-15 02:15:29

标签: r

我是R的新手,所以如果这很明显我很抱歉。但是,我已经坚持了一段时间,但到目前为止找到答案却没有用。

数据框:

1  b c id e
2  0 1 45 5
3  1 0 45 7
4  0 1 48 5
5  1 0 46 7

期望的结果:

1 b c id e f
2 0 1 45 5 1
3 1 0 45 7 1
4 0 1 48 5 0
5 1 0 46 7 0

我正在尝试做什么:我正在尝试根据具有相同ID的人的b和c级别创建列F. E列对于我和其他省略的值仍然很重要,因此我无法折叠ID上的数据。

我最接近的是:

    library(dplyr)
    df2 <- df %>% 
     group_by(id) %>%
     mutate(ifelse(b == 1 & c == 1, 1, 0))

但是,我认为我的问题是我没有正确使用dplyr::group_by因此我基本上做了基础ifelse声明。

1 个答案:

答案 0 :(得分:2)

我们这里不需要df %>% group_by(id) %>% mutate(f = as.integer(any(b) & any(c))) # A tibble: 4 x 5 # Groups: id [3] # b c id e f # <int> <int> <int> <int> <int> #1 0 1 45 5 1 #2 1 0 45 7 1 #3 0 1 48 5 0 #4 1 0 46 7 0

{{1}}