【发布时间】:2017-04-09 07:59:16
【问题描述】:
This is related to the question that I posted earlier.我相信在R中一定有更好的方法可以做到这一点,而无需在R中使用sql。因为sql无法识别R中的变量,所以目前它给了我一些错误。这可能是由于语法错误。 SQL 错误很明显,因为这些列不在 df0 中。不过,需要有一种方法将文件名注入到选定的行中。为什么 R 读取的文件不超过 2 个?
任何人都可以指出根本原因并提出一些想法以获得更好的解决方案吗?
> df <- NULL
> fn <- NULL
> n <- 1
> for (f in files) {
+ fn <- file_path_sans_ext(f)
+ df0 <-read.table(f, sep=",")
+ n <- n + 1
+ df <- sqldf('select n, fn, V1, V2 from df0
where V1 IN (101, 201, 301, 401)')
-- thought R could read fn just as df0
+ df <- rbind(df) --further fn and n only reads two files out of 1000s
+ }
Error in rsqlite_send_query(conn@ptr, statement) :
no such column: n, df1
【问题讨论】:
-
发布到 SO 的 r 标签的代码必须是最低限度的完整和可重现的,以便其他人只需将其复制到他们的会话中即可运行它。
-
@G.Grothendieck 我不太关注你。如您所见,此标签非常新。它是一个新的约定还是仅适用于 R?你能指出什么是“最小的完整和可重复的”吗?用户/开发者的代码不是特定于他们的目的吗?
-
@G.Grothendieck 这是一个很好的做法,但通常情况并非如此。上面的 sn-p 只有几行。与那里的许多问题和答案相比,它是相当多变的。我的问题必须显示错误和代码,以便查看者识别问题。我只是想知道这不是最小的,为什么它不能被复制......是否会在问题更新后恢复否决票?此外,我要求替代 sql。