dd
(问题底部的dput):
# A tibble: 6 x 2
# Groups: Date [5]
Date keeper
<chr> <lgl>
1 1/1/2018 TRUE
2 2/1/2018 TRUE
3 3/1/2018 FALSE
4 4/1/2018 FALSE
5 3/1/2018 TRUE
6 5/1/2018 TRUE
注意,它已按日期分组。我正在尝试创建另一列,如果组中只有一行,则该列将“keeper”变为TRUE,否则保留keeper的值。这看起来相当简单,但当我尝试这一点时,我得到了以下结果:
dd %>% mutate(moose=ifelse(n()==1,TRUE,keeper))
# A tibble: 6 x 3
# Groups: Date [5]
Date keeper moose
<chr> <lgl> <lgl>
1 1/1/2018 TRUE TRUE
2 2/1/2018 TRUE TRUE
3 3/1/2018 FALSE FALSE
4 4/1/2018 FALSE TRUE
5 3/1/2018 TRUE FALSE
6 5/1/2018 TRUE TRUE
预期产出:
Date keeper moose
<chr> <lgl> <lgl>
1 1/1/2018 TRUE TRUE
2 2/1/2018 TRUE TRUE
3 3/1/2018 FALSE FALSE
4 4/1/2018 FALSE TRUE
5 3/1/2018 TRUE TRUE
6 5/1/2018 TRUE TRUE
(注第5行)
以下是数据帧的dput:
dd<-structure(list(Date = c("1/1/2018", "2/1/2018", "3/1/2018", "4/1/2018",
"3/1/2018", "5/1/2018"), keeper = c(TRUE, TRUE, FALSE, FALSE,
TRUE, TRUE)), class = c("grouped_df", "tbl_df", "tbl", "data.frame"
), row.names = c(NA, -6L), vars = "Date", drop = TRUE, indices = list(
0L, 1L, c(2L, 4L), 3L, 5L), group_sizes = c(1L, 1L, 2L, 1L,
1L), biggest_group_size = 2L, labels = structure(list(Date = c("1/1/2018",
"2/1/2018", "3/1/2018", "4/1/2018", "5/1/2018")), class = "data.frame", row.names = c(NA,
-5L), vars = "Date", drop = TRUE, indices = list(0L, 1L, 2L,
4L, 3L, 5L), group_sizes = c(1L, 1L, 1L, 1L, 1L, 1L), biggest_group_size = 1L, labels = structure(list(
Date = c("1/1/2018", "2/1/2018", "3/1/2018", "3/1/2018",
"4/1/2018", "5/1/2018"), keeper = c(TRUE, TRUE, FALSE, TRUE,
FALSE, TRUE)), class = "data.frame", row.names = c(NA, -6L
), vars = c("Date", "keeper"), drop = TRUE, .Names = c("Date",
"keeper")), .Names = "Date"), .Names = c("Date", "keeper"))
当我继续使用这个数据帧时,我发现如果我首先创建一个列
n
add_count
,并参考我的
ifelse
n()
n()
给我同样的结果?