全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1762 11
2017-10-12
已有数据A:
gene     sample       weight
a             1             0.5

a             1             0.6

a             2             0.4
a             2             0.5
a             3             0.5
b             1             0.4
b             1             0.3
b             2             0.5
b             2             0.6
b             3             0.6
数据B:
sample   1        2        3
weight   0.5    0.6     0.7

目标:把数据A中的weight,减去数据B中对应Sample的weight,求问不提取或拆分A的情况下如何操作?




二维码

扫码加我 拉你入群

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

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

全部回复
2017-10-12 22:55:32
left_join()配合transmute()很容易解决。
复制代码


二维码

扫码加我 拉你入群

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

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

2017-10-13 08:49:47
屋檐滴语 发表于 2017-10-12 22:55
left_join()配合transmute()很容易解决。
这里有sample是rownames,应该要转成data.frame才可以用你的方法解决吧
二维码

扫码加我 拉你入群

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

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

2017-10-13 09:31:52
用sqldf 包
select  A.gene   ,  A.sample   , (A.weight-B.Weight) as adjusted_weigh from A left join B on A.sample = B.sample


假设 B    已经 转化为  列 为

sample ,weight
   1           0.5
  2            0.6
   3           0.7
二维码

扫码加我 拉你入群

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

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

2017-10-13 10:47:51
jiangbeilu 发表于 2017-10-13 08:49
这里有sample是rownames,应该要转成data.frame才可以用你的方法解决吧
是的,我直接是令B=data.frame(sampel=c(1,2,3),weight=c(0.5,0.6,0.7))
如果sample和weight是行名,那么1,2,3是以数字开头的,没法做为列名。
二维码

扫码加我 拉你入群

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

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

2017-10-13 23:10:11
屋檐滴语 发表于 2017-10-13 10:47
是的,我直接是令B=data.frame(sampel=c(1,2,3),weight=c(0.5,0.6,0.7))
如果sample和weight是行名,那么 ...
那是可以
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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