我想使用 RODBC包部分覆盖带有数据框的Microsoft Access表。我没有覆盖整个表,而是在寻找一种方法,只删除该表中的特定行 - 然后将我的数据框追加到其末尾。
我添加框架的方法非常简单。我会使用以下函数:
sqlSave(ch, df, tablename = "accessTable", rownames = F, append = T)
挑战在于找到一个允许我提前从Access表中清除特定行号的功能。 sqlDrop 和 sqlClear 函数似乎没有让我在那里,因为他们将删除或清除整个表格。
非常感谢任何实现此任务的建议!
答案 0 :(得分:1)
确实,请考虑使用sqlQuery
对要保留的行的Access表进行子集化,然后rbind
使用当前数据帧,最后使用sqlSave
,故意用{{覆盖原始Access表1}}。
append = FALSE
当然你也可以做计数器,从每个指定逻辑的表中删除行,然后用# IMPORT QUERY RESULTS INTO DATAFRAME
keeprows <- sqlQuery(ch, "SELECT * FROM [accesstable] WHERE timedata >= somevalue")
# CONCATENATE df to END
finaldata <- rbind(keeprows, df)
# OVERWRITE ORIGINAL ACCESS TABLE
sqlSave(ch, finaldata, tablename = "accessTable", rownames = FALSE, append = FALSE)
附加(NOT覆盖):
sqlSave
关键是找到指定要保留的行的SQL逻辑。