我试图找到所有股票记录,其中收益率大于使用sqldf
的所有股票的中位数,但我收到此消息。
我已经尝试使用实际数字2.39并且它可以工作,但我没有成功替换变量使其动态化。也许一个子选择会更好?
mYd <- median(df3$Yield, na.rm = TRUE)
df4 <- sqldf("SELECT a.*
FROM df3 a
WHERE (a.Yield > mYd)
;")
rsqlite_send_query中的错误(conn @ptr,statement):没有这样的列:mYd
答案 0 :(得分:1)
错误源于SQLdf无法在df3
中找到名为mYd
的列。它需要在查询中引用的每个相应列的数据框中查找列。尝试将mYd
变量添加到df3
数据框中作为正确的列:
df3$mYd <- median(df3$Yield, na.rm=TRUE)
df4 <- sqldf("SELECT * FROM df3 WHERE Yield > mYd;")
请注意,您并不需要在此处使用别名df3
,因为它是查询中唯一的表,并且您不会生成任何计算列。