首页 > 解决方案 > 向现有数据框添加新行的更快方法

问题描述

我有一个很大的 df,我必须在其中添加包含特定名称信息的新行。就像下面的例子一样。我想知道是否有更快的方法来做到这一点......

dat <- data.frame(name = c("Ariel", "Alex", "Melly", "Dennis"), info = "")

# df I start with
    name info
1  Ariel     
2   Alex     
3  Melly     
4 Dennis 

# updates I have to make over time
dat$info[dat$name == "Ariel"] <- "chocolate"
dat <- rbind(dat, c("Ariel", "blueberry"))
dat <- rbind(dat, c("Ariel", "cracker"))

    name      info
1  Ariel chocolate
2   Alex          
3  Melly          
4 Dennis          
5  Ariel blueberry
6  Ariel   cracker

欢迎任何建议!:)

标签: rdataframe

解决方案


您可以创建一个需要添加的数据框,并将rbind其添加到原始数据集中,删除要为其添加数据的name变量。

info <- c('chocolate', 'blueberry', 'cracker')
new_name = 'Ariel'

result <- rbind(subset(dat, name != new_name), data.frame(name = new_name, info))
result

#     name      info
#2    Alex          
#3   Melly          
#4  Dennis          
#1   Ariel chocolate
#21  Ariel blueberry
#31  Ariel   cracker

data.frame(name = new_name, info)要添加的新数据框在哪里。


推荐阅读