我有一个数据库,其表格 DF 就像这样
ID Average
A_1 1.5
B_2 1.8
C_3 2.9
B_1 8.0
C_4 12.0
D_1 3.0
B_4 6.0
C_1 3.4
D_2 5.6
F_1 7.8
以下是我在R脚本中作为名为 DF_RAW 的df导入的excel文件的内容
ID_Raw Measure
A Length
B,C,D Breadth
A Length
B,C,D Breadth
B,C,D Breadth
F Width
我正在尝试编写一个SQL查询,根据DF_RAW中不同类型的ID过滤DF中的内容
ID_types <- as.character(unique(DF_RAW$ID_Raw))
ID_config <- ID_types[1] #"A"
现在,ID是A
SELECT * FROM DF
WHERE ID LIKE ( '",ID_config,"%' )
这很好用,我得到了我想要的输出,但当我将索引更改为
时ID_config <- ID_types[2] #"B,C,D"
它不返回任何数据。我想要的输出是
ID Average
B_2 1.8
C_3 2.9
B_1 8.0
C_4 12.0
D_1 3.0
B_4 6.0
C_1 3.4
D_2 5.6
如何使用R?
实现所需的输出答案 0 :(得分:1)
使用R
,如果我们使用sqldf
库,请使用sprintf
和gsub
library(sqldf)
ID_config <- ID_types[2]
ID_confign <- sprintf("SELECT * FROM DF WHERE ID LIKE '%%%s%%'",
gsub(",", "%' OR ID LIKE '%", ID_config))
sqldf(ID_confign)
# ID Average
#1 B_2 1.8
#2 C_3 2.9
#3 B_1 8.0
#4 C_4 12.0
#5 D_1 3.0
#6 B_4 6.0
#7 C_1 3.4
#8 D_2 5.6