![](/img/trans.png)
[英]Preserving a column as a factor when performing a left join using sqldf in R
[英]SQLDF Left Join in R
我的目标是采用'matr',按列c1对其进行排序,并保持唯一(c1),其中c2 = 1.例如,从此代码中...
c1 = c("a",'a','a','b','b','b','b','c','c')
c2 = c(1,1,0,1,1,0,1,0,0)
matr = as.data.frame(cbind(c1,c2))
one = sqldf('select distinct(c1),c2 from matr where c2 = 1')
vs = sqldf('select distinct(c1),c0,c2 from matr group by c1')
sqldf('select matr.*,one.* from matr
left outer join one
where one.c1 = matr.c1')
到达:
c1 c2
a 1
b 1
c 0
出于某种原因,我在左连接中丢失了行c。 我只能到达(通过其他联接)
c1 c2
a 1
b 1
你想on
,而不是where
在过去的SQL语句。 where
它执行连接的位置,然后应用where
子句,而on
其上执行相对于on
条件的连接。
> sqldf('select matr.*, one.* from matr left outer join one on one.c1 = matr.c1')
c1 c2 c1 c2
1 a 1 a 1
2 a 1 a 1
3 a 0 a 1
4 b 1 b 1
5 b 1 b 1
6 b 0 b 1
7 b 1 b 1
8 c 0 <NA> <NA>
9 c 0 <NA> <NA>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.