Я хочу взять фрейм данных, group_by
переменную, затем оценить каждую группу, чтобы увидеть, содержит ли отдельная переменная строку в любой строк в этой группе.
Используя эту информацию, я хочу создать новый столбец, содержащий результат.
т.е. Если хотя бы одна строка в группе содержит строку, значение в новом столбце для каждой строки в группе должно быть TRUE
.Если ни одна строка в группе не содержит строку, значения группы в новом столбце должны быть FALSE
.
library(dplyr)
library(stringr)
df <- tibble(
A=c('red','red','red','blue','blue','blue'),
B=c('yes','no','no','no','no','no')
)
Например, при попытке отдельно определить строку «да» в столбце B
для групп red
и blue
столбца A
df %>%
group_by(A) %>%
mutate(yes_in_group = ifelse(str_detect(B, 'yes'), TRUE, FALSE))
я ожидал бы, что каждое значение yes_in_group
будет TRUE
для группы red
и FALSE
для blue
, но mutate
не относится к группам.
expected <- tibble(A=c('red','red','red','blue','blue','blue'),
B=c('yes','no','no','no','no','no'),
yes_in_group=c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE))
actual <- tibble(A=c('red','red','red','blue','blue','blue'),
B=c('yes','no','no','no','no','no'),
yes_in_group=c(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE))