gpt4 book ai didi

r - 有没有一种有效的方法可以将现有的csv文件追加到R中而不进行重复?

转载 作者:行者123 更新时间:2023-12-04 09:37:09 25 4
gpt4 key购买 nike

没有一个data.frame附加到现有文件。当它由write.table函数附加时,可能导致重复的记录进入文件。这是示例代码:

df1<-data.frame(name=c('a','b','c'), a=c(1,2,2))
write.csv(df1, "export.csv", row.names=FALSE, na="NA");

#"export.csv" keeps two copies of df1
write.table(df1,"export.csv", row.names=F,na="NA",append=T, quote= FALSE, sep=",", col.names=F);


因此,理想情况下,输出文件应仅保留df1的一个副本。但是write.table函数没有用于重复检查的任何参数。

谢谢您提前提出任何建议。

最佳答案

您可以从文件中读取data.frame,并使用新的data.frame读取rbind并检查重复值。为了提高写入效率,请仅追加非重复行。

如果由于要使用大数据集而提出了这个问题,并且需要考虑读/写时间,请查看data.tablefread软件包。

# initial data.frame
df1<-data.frame(name=c('a','b','c'), a=c(1,2,2))
write.csv(df1, "export.csv", row.names=FALSE, na="NA")

# a new data.frame with a couple of duplicate rows
df2<-data.frame(name=c('a','b','c'), a=c(1,2,3))
dfRead<-read.csv("export.csv") # read the file
all<-rbind(dfRead, df2) # rbind both data.frames
# get only the non duplicate rows from the new data.frame
nonDuplicate <- all[!duplicated(all)&c(rep(FALSE, dim(dfRead)[1]), rep(TRUE, dim(df2)[1])), ]
# append the file with the non duplicate rows
write.table(nonDuplicate,"export.csv", row.names=F,na="NA",append=T, quote= FALSE, sep=",", col.names=F)

关于r - 有没有一种有效的方法可以将现有的csv文件追加到R中而不进行重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27969968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com