我已经使用下面的调用根据不等式条件“加入”我的数据集:
library(sqldf)
sqldf("select *
from dataset1 a,
dataset2 b
a.col1 <= b.col2")
但是,有没有办法可以在没有 sqldf 的情况下执行此操作?
到目前为止,我只能看到基于特定公共列上的简单连接的合并函数。
谢谢!
答案 0 :(得分:1)
最近在data.table中实现了非equi(或条件)连接,并在当前开发版本v1.9.7中提供。请参阅安装说明here。
require(data.table) # v1.9.7+
setDT(dataset1) # convert to data.tables
setDT(dataset2)
dataset1[dataset2, on=.(col1 < col2), nomatch=0L]
对于dataset2
的每一行,在提供给on
参数的条件下连接时查找匹配的行索引,并返回那些匹配行的所有列。
答案 1 :(得分:0)
您绝对可以使用div.indexcontent {
vertical-align: top;
width: 970px;
}
// Added these styles
div.left-wrapper {
float:left;
width:660px;
}
// Change width to 100%
div.newsext {
text-align: left;
clear: none;
width: 100%;
float: left;
border-width: 7px 7px 7px 7px;
border-image: url("images/boxborder3.png") 7 7 7 7 round;
}
// Change width to 100%
div.indexforumext {
text-align: left;
width: 100%;
float: left;
border-width: 7px 7px 7px 7px;
border-image: url("images/boxborder3.png") 7 7 7 7 round;
}
div.newshead{
background-image: url("images/divhead.png");
background-color: #0e141f;
background-repeat: no-repeat;
padding-left: 5px;
display: inline;
}
div.newscontent {
background-image: url("images/cbox.png");
background-color: #0e141f;
background-repeat: no-repeat;
padding: 10px;
}
div.rightbox {
width: 250px;
float: left;
border-width: 7px 7px 7px 7px;
border-image: url("images/boxborder3.png") 7 7 7 7 round;
}
分两步完成。
示例(合并的具体细节取决于您):
merge
答案 2 :(得分:0)
我有几次这个问题,我想我使用dplyr
得到了解决方案!它在效率方面可能不是最好的,但它确实有效。我假设你在每种情况下都有一个常量变量叫做“假”。 (或者,它可以是另一个加入的变量)。此外,我假设dataset1的列是a_colj,而dataset2的列是b_colj:
dataset1 %>%
inner_join(dataset2, by='dummy') %>%
filter(a_col1 <= b_col2)