我需要基于預先存在的列創建一個新列,并且我需要在劇集的所有行中創建該值。
episode_id <- c(2,2,56,56,67,67,67)
issue <- c("loose","faulty","broke","faulty","loose","broke","missing")
df <- data.frame(episode_id,issue)
使用 ifelse,我可以創建一個名為“broke”的新列,它準確地指示問題是否在每一行中都有“bro”。
df$broke <- ifelse(grepl("bro",df$issue),1,0)

但是,我希望它為具有相同 episode_id 的每一行指示一個“1”。
所以我希望它看起來像:

我嘗試了 group_by,但沒有效果。
uj5u.com熱心網友回復:
group_by是開始,您可以繼續使用 amutate()和 aany()將每個部分中的存在轉換為broke組中的至少一個:
library(dplyr)
df %>%
group_by(episode_id) %>%
mutate(broke = as.numeric(any(grepl("bro", issue)))) %>%
ungroup()
# A tibble: 7 × 3
episode_id issue broke
<dbl> <chr> <dbl>
1 2 loose 0
2 2 faulty 0
3 56 broke 1
4 56 faulty 1
5 67 loose 1
6 67 broke 1
7 67 missing 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496703.html
上一篇:為什么@Html.EditorFor和@Html.PasswordFor在MVC中創建不同的樣式框?
下一篇:基于多個if陳述句復制資料
