【发布时间】:2022-01-11 03:24:51
【问题描述】:
df_input 是我拥有的数据框,我想将其转换为df_output。
例如,因为 2001-2003 年是 assembly=1,我们在 2001 年有一个获胜者。这意味着只要程序集不变,我们就有一个获胜者。
df_input <- data.frame(winner = c(1,0,0,0,2,0,0,0,1,0,0,0,0),
party = c("A",0,0,0,"B",0,0,0,"C",0,0,0,0),
assembly= c(1,1,1,2,2,2,3,3,3,3,4,4,4),
year = c(2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013))
df_output <- data.frame(winner = c(1,1,1,0,2,2,0,0,1,1,0,0,0),
party = c("A","A","A",0,"B","B",0,0,"C","C",0,0,0),
assembly= c(1,1,1,2,2,2,3,3,3,3,4,4,4),
year = c(2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013))
如何根据“大会”更新与获胜者列中相同的信息?
编辑:如果有一个额外的字符串变量“party”怎么办?看看编辑:
执行此代码后出现以下错误:
df_output <- df_input %>%
mutate(df_input$party = if_else(is.na(df_input$party)==FALSE, df_input$party, NA_real_)) %>%
group_by(assembly) %>%
fill(df_input$party) %>%
ungroup() %>%
replace_na(list(df_input$party = 0))
错误:
Error: unexpected '=' in:
" ungroup() %>%
replace_na(list(df_input$party ="
【问题讨论】:
标签: r dplyr data-manipulation