Я пытаюсь создать функцию, которая для каждой строки определяет имя столбца, в котором встречается указанная строка.
Например, представьте, что в этом наборе данных я начинаю со строк 1-3. Я хочу создать новый столбец desired_column
, содержащий строки, в которых встречается «foo».
row1 <- c('a', 'b', 'c', 'foo')
row2 <- c('foo', 'a', 'foo', 'b')
row3<- c('b', 'foo', 'b', 'b')
desired_column <- c('row2', 'row3', 'row2', 'row1')
df <- data.frame(row1, row2, row3, desired_column)
row1 row2 row3 desired_column
1 a foo b row2
2 b a foo row3
3 c foo b row2
4 foo b b row1
Я пробовал возиться с такими функциями, как which(df == "foo", arr.ind = TRUE)
(см. здесь ), но это, похоже, не работает, и с итерациями stringr::str_detect()
(например, , здесь ). Я также пробовал dplyr:contains()
например здесь , но не могу понять, как заставить его перебирать строки. Помогите?