【发布时间】:2018-11-26 08:09:29
【问题描述】:
我在这里sqldf returns zero observations 用一个可重复的例子来跟进我的问题。
我发现问题可能来自其中一个单元格中的“逗号”(“1,500+”),我认为我必须使用此处建议的过滤器sqldf, csv, and fields containing commas,但我不知道如何定义我的过滤器。下面是代码:
library(sqldf)
df <- data.frame("a" = c("8600000US01770" , "8600000US01937"),
"b"= c("1,500+" , "-"),
"c"= c("***" , "**"),
"d"= c("(x)" , "(x)"),
"e"= c("(x)" , "(x)"),
"f"= c(992 , "-"))
write.csv(df, 'df_to_read.csv')
# 'df_to_read.csv' looks like this:
"","a","b","c","d","e","f"
1,8600000US01770,1,500+,***,(x),(x),992
2,8600000US01937,-,**,(x),(x),-
Housing <- file("df_to_read.csv")
Housing_filtered <- sqldf('SELECT * FROM Housing', file.format = list(eol="\n"))
当我运行此代码时,我收到以下错误:
connection_import_file(conn@ptr, name, value, sep, eol, skip) 中的错误:RS_sqlite_import: df_to_read.csv 第 2 行预期有 7 列数据,但找到了 8 列
【问题讨论】:
-
你有没有试过打开
df_to_read.csv看看你写完之后的样子?您能否在问题中也包含此内容? -
@Tim Biegeleisen:我将其添加到我的问题中。
-
从您帖子中的
df_to_read.csv文件的内容中删除"。