本文介绍了dplyr更新data.frame中的单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
df <-data.frame(x=c(1:5),y=c(letters[1:5]))
假设我要修改最后一行,
Let's say I want to modify the last row,
update.row<-filter(df,x==5) %>% mutate(y="R")
如何将这一行更新到data.frame中?我发现,尽管有一种奇怪的方法,但唯一的方法是反连接并附加结果.
How do I update this row into the data.frame ?The only way, I found albeit a strange way is to do an anti-join and append the results.
df <-anti_join(df,update.row,by="x") %>%
bind_rows(update.row)
但是,这似乎是完成一项简单任务的一种非常微不足道的方法.任何想法都非常感谢...
However, it seems like a very inelegant way to achieve a simple task.Any ideas are much appreciated...
推荐答案
如果您坚持使用 dplyr
,也许
df <-data.frame(x=c(1:5),y=c(letters[1:5]))
library(dplyr)
df %>%
mutate(y = as.character(y)) %>%
mutate(y = ifelse(row_number()==n(), "R", y))
# x y
#1 1 a
#2 2 b
#3 3 c
#4 4 d
#5 5 R
这篇关于dplyr更新data.frame中的单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!