R:将行值复制到dplyr / tidyr中的新行

问题描述

我已经成功添加一个新的空白行1“ 24727.2”,但是我想将第[5]行“ state = 24727”中名为2009:2018的列2:11的值复制到第{{3 }}。然后,我只想将第1行中小于2016的列的值更改为NA,我似乎无法使用ifelse,mutate_at或mutate_each,replace_na()将重复/复制的数据复制/粘贴到行1“ 24727.2”中。 )或总结。感谢您的帮助或帮助。

library(dplyr)
library(tidyr)
library(tibble)
temp <- data %>% 
  group_by(year,state) %>%
  summarise(mean.var3 = mean(var3)) %>%
  spread(year,mean.var3) %>%
  do(add_row(.,state=24727.2,.before=1)) %>%
print(temp)

1

解决方法

如果我们只对第一行感兴趣,可以使用replace

library(dplyr)
temp <- temp %>%
           mutate(across(where(is.numeric),~ replace(.,1,.[2])))

或与base R

temp[1,-1] <- temp[2,-1]