Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQLDF in R中使用LIKE搜索多个数据帧中的文本_R_String_Sqldf - Fatal编程技术网

如何在SQLDF in R中使用LIKE搜索多个数据帧中的文本

如何在SQLDF in R中使用LIKE搜索多个数据帧中的文本,r,string,sqldf,R,String,Sqldf,我有两个文本数据框,希望比较部分字符串。 我要查找的是表2中的Id、t1.mo和monthid t1 <- data.frame("id"=1:4,"mo"=c("Jan","Feb","Apr","Mar")) t2 <- data.frame("id"=1:4, "nt"= c("January","Jan Feb","February","Mar"),"monthid" = 5:8) sqldf("select t1.mo,t2.nt,t2.monthid from t1,

我有两个文本数据框,希望比较部分字符串。 我要查找的是表2中的Id、t1.mo和monthid

t1 <- data.frame("id"=1:4,"mo"=c("Jan","Feb","Apr","Mar"))
t2 <- data.frame("id"=1:4, "nt"= c("January","Jan Feb","February","Mar"),"monthid" = 5:8)

sqldf("select t1.mo,t2.nt,t2.monthid from t1, t2 where t1.mo like '%' || t2.nt || '%'")
感谢您的帮助


正如Tim Biegeleisen指出的那样编辑输出。

您正在向后进行
类似的
比较,您应该检查
t1
中的
mo
列是否显示为
t2
nt
列的子字符串:

sql <- "SELECT t1.mo, t2.nt, t2.monthid
        FROM t1
        INNER JOIN t2 ON t2.nt like '%' || t1.mo || '%' AND t1.id = t2.id"
result <- sqldf(sql)

sql非常感谢您编辑问题和答案,Tim Biegeleisen。我必须连接id上的表,因此添加了t1.id=t2.id,这很有效。添加该连接也不会生成您期望的结果集。你应该澄清你的预期产出。谢谢。我在等id匹配的行。因此,添加id匹配得到“Feb”。1月1日1月5日2月2日1月2日2月6日3月4日3月8日5月我也应该更改相关输出。很抱歉给你带来了困惑。
sql <- "SELECT t1.mo, t2.nt, t2.monthid
        FROM t1
        INNER JOIN t2 ON t2.nt like '%' || t1.mo || '%' AND t1.id = t2.id"
result <- sqldf(sql)