我使用sqldf函数在R studio中进行数据操作。我遇到了一个问题,即sqldf函数没有考虑我在查询中设置的条件。例如代码
d2 <- sqldf("select a.'n1.0', a.date, a.tot_cap*100/a.'n1.0' as afasf from data a where a.date < '2013-03-01'")
给出与代码完全相同的结果
d2 <- sqldf("select a.'n1.0', a.date, a.tot_cap*100/a.'n1.0' as afasf from data a").
设置单引号,双引号,根本没有引号无济于事。
有人知道问题出在哪里以及如何解决?
提前感谢。
这里是dput(data2)
命令的结果,其中data2是初始数据集的前40行。
structure(list(REGN = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), date = structure(c(14761,
14791, 14822, 14853, 14883, 14914, 14944, 14975, 15006, 15034,
15065, 15095, 15126, 15156, 15187, 15218, 15248, 15279, 15309,
15706, 15737, 15765, 15796, 15826, 15857, 15887, 15918, 15949,
15979, 16010, 16040, 16071, 16102, 16130, 16161, 16191, 16222,
16252, 16283, 16314), class = "Date"), tot_cap = structure(c(3.29680129097603e-316,
3.27881038454837e-316, 3.31569035934127e-316, 3.42544269478722e-316,
3.46449744773999e-316, 3.76857311386686e-316, 3.83375272419446e-316,
3.89781752479879e-316, 3.88106524094525e-316, 3.91119504385185e-316,
3.54278081534629e-316, 3.66904833254234e-316, 3.84160896084211e-316,
3.83063042693901e-316, 3.87586035817945e-316, 3.98758302742101e-316,
4.04557250040469e-316, 4.19023427922167e-316, 4.27870651560933e-316,
5.55371435659506e-316, 5.45611929687006e-316, 5.73639651252866e-316,
5.74625569130456e-316, 5.74576631928235e-316, 5.79667637503333e-316,
5.86047635645149e-316, 5.66957630781748e-316, 6.16857297583704e-316,
6.25638237375425e-316, 6.32633446059442e-316, 6.54992194176386e-316,
6.44650520772079e-316, 6.41496840466797e-316, 6.51734725500882e-316,
6.52890122716964e-316, 6.49014508749322e-316, 6.47399926921995e-316,
6.49043322657787e-316, 6.47938176858544e-316, 6.65456810876004e-316
), class = "integer64"), bas_cap = structure(c(0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5.24913731265079e-316, 5.71723269425777e-316,
5.71723269425777e-316, 5.72079658738749e-316, 5.71723269425777e-316,
5.71723269425777e-316, 5.71723269425777e-316, 5.84030513832873e-316
), class = "integer64"), osn_cap = structure(c(0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5.24913731265079e-316, 5.71723269425777e-316,
5.71723269425777e-316, 5.72079658738749e-316, 5.71723269425777e-316,
5.71723269425777e-316, 5.71723269425777e-316, 5.84030513832873e-316
), class = "integer64"), n1.0 = c(NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 14.13, 13.91, 13.74, 13.25,
13.11, 13.59, 13.07, 13.06), n1.1 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 11.65, 12.3, 12.11, 11.75,
11.65, 12.04, 11.61, 11.53), n1.2 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 11.65, 12.3, 12.12, 11.77,
11.66, 12.06, 11.62, 11.54), n1 = c(13.96, 13.66, 15.07, 15.75,
15.49, 15.87, 15.7, 16.32, 16.17, 16.67, 14.97, 15.06, 15.22,
15.02, 14.68, 14.42, 13.5, 13.29, 13.1, 13.25, 12.53, 13.28,
13.35, 13.42, 13.67, 14.14, 13.1, 14.13, 14.13, 14.55, 14.53,
14.51, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, 40L
), class = "data.frame")
我使用sqldf函数在R studio中进行数据操作。我遇到了一个问题,即sqldf函数没有考虑我在查询中设置的条件。例如代码d2
这里有几个问题: