全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2390 2
2015-10-10
大家好! 刚接触R语言,可能问题有些初级,还请大家不吝帮助,谢谢!
      有两个数据集A和B(包括时间,类型,数值等数据),除去类型一列外,A包含B,A'和B'是除去类型一列后的新数据集,我用C'<- setdiff(A',B')得到不包含在B'中数据的新数据集。问题是,如何将相应的类型参数添加到新数据集中,或者如何从A中提取出C中数据对应的各行数据?
     先多谢各位大侠了!
下面举例两组数据,要得到包含在A中但不包含在B中的数据,要包括type这一列参数。请教一下,如何处理?
A和B如下:
A:                                                                                B:
time               type        price              amount                  time        price          amount
13:07:38        买入        0.572         111.8                         13:07:38        0.572         111.8
13:03:46        卖出        0.571         728.3842                   12:54:37        0.572         68
13:01:43        卖出        0.571         1200                         12:54:12        0.572         46.9101
13:01:06        卖出        0.571         1328.3842                 12:53:33        0.572         46.9101
13:00:54        卖出        0.571         1748.3842                 12:51:47        0.572         417
12:54:37        买入        0.572         68                            12:50:01        0.572         500
12:54:12        卖出        0.572         46.9101                    12:49:34        0.572         103
12:53:33        卖出        0.572         2953.0899                 12:49:18        0.572         35
12:53:33        卖出        0.572         46.9101                    12:49:03        0.572         1000
12:51:47        买入        0.572         417                          12:48:35        0.572         200
12:50:01        买入        0.572         500        
12:49:34        买入        0.572         103
12:49:18        买入        0.572         35
12:49:03        买入        0.572         1000
12:48:35        买入        0.572          200

想得到A排除B后的C,如下:                                                        
   time         type         price                amount
13:03:46        卖出        0.571         728.3842
13:01:43        卖出        0.571         1200
13:01:06        卖出        0.571         1328.3842
13:00:54        卖出        0.571         1748.3842
12:53:33        卖出        0.572         2953.0899
12:51:47        买入        0.572         417
12:50:01        买入        0.572         500
12:49:18        买入        0.572         35
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-10 20:46:37

> setdiff.data.frame = function(A, B){

+     g <-  function( y, B){

+         any(apply(B, 1, FUN =function(x)

+             identical(all.equal(x,y),TRUE) ) )}

+     unique(A[!apply(A,1, FUN = function(t) g(t[-2], B) ), ])

+  }

> setdiff.data.frame = function(A, B){

+     g <-  function( y, B){

+         any(apply(B, 1, FUN =function(x)

+             identical(all.equal(x,y),TRUE) ) )}

+     unique(A[!apply(A,1, FUN = function(t) g(t[-2], B) ), ])

+ }

> setdiff.data.frame(A, B)

     timetypeprice    amount

213:03:46 卖出0.571  728.3842

313:01:43 卖出0.5711200.0000

413:01:06 卖出0.5711328.3842

513:00:54 卖出0.5711748.3842

8 12:53:33 卖出0.5722953.0899
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-10-12 10:44:05
非常感谢你的回复
我好好学习研究研究
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群