楼主: joinber
1804 6

[问答] R语言数据操作求助 [推广有奖]

  • 0关注
  • 0粉丝

初中生

61%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
636 点
帖子
16
精华
0
在线时间
9 小时
注册时间
2015-10-8
最后登录
2017-4-21

楼主
joinber 发表于 2015-10-8 16:38:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大家好! 刚接触R语言,可能问题有些幼稚,还请大家不吝帮助,谢谢!

      我有两个数据集A和B(包括时间,类型,数值等数据),除去类型一列外,A包含B,A'和B'是除去类型一列后的新数据集,
我用c<- setdiff(A',B')得到不包含B'中数据的新数据集。问题是,如何将相应的类型参数添加到新数据集中,或者如何从A中提取出c中数据对应的各行数据?

     先多谢各位大侠了!
二维码

扫码加我 拉你入群

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

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

关键词:R语言 数据集 大家好

沙发
Mr.vencent 发表于 2015-10-9 07:50:48 来自手机
没看懂你要的结果,模拟下结果,贴图。

藤椅
joinber 发表于 2015-10-9 09:45:16
多谢你的回复。
不好意思没有表达清楚,下面举例两个数据框,要得到包含在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



板凳
kkbbee 发表于 2015-10-10 10:48:36
。。
哈尔滨qa63597432.jimdo.com,西安jiaodi8.jimdo.com,宜春183427464.jimdo.com,齐齐哈尔diwozhao6088891054.jimdo.com,
上海womeicu118550631.jimdo.com,苏州zhiju7151157873.jimdo.com,吉林ci33212731180.jimdo.com,玉溪12a96b148508.jimdo.com,
常德cisou73715966.jimdo.com,黄山lieyepaolan0.jimdo.com,大理keliangsong0709290.jimdo.com,上海shanheneiyou8.jimdo.com,
上海hui7697801.jimdo.com,杭州xianfutj481.jimdo.com,红河wei050910697.jimdo.com,包头tongqiong87418.jimdo.com,长春panchiyin3ow8.jimdo.com,景德镇ixynbnu.jimdo.com,赣州chuwu990436.jimdo.com,上海robin55ym.jimdo.com,南京lunshai969912037.jimdo.com,北京souyuane1318.jimdo.com,成都dunmujia77.jimdo.com,泸州yunguanao460.jimdo.com.贵阳chentianzaixian.jimdo.com,遵义ywllx247.jimdo.com,西安weihanri97417.jimdo.com,宝鸡jiaomujiaohuan47.jimdo.com,哈尔滨taoyuanxin4551.jimdo.com,佛山huixingc6246.jimdo.com

报纸
joinber 发表于 2015-10-10 11:12:09
唉,我以为有人解答问题了呢。空欢喜一场啊
希望有人能帮上忙

地板
ddinghzau 发表于 2015-10-10 21:01:13
问了两次呀,参见 :https://bbs.pinggu.org/thread-3929410-1-1.html

> 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

7
joinber 发表于 2015-10-12 10:41:29
非常感谢楼上大侠的回复,
你的代码正好解决了我的问题,我接下来仔细学习研究一下。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 06:55