一对多数据的互换

2021-06-07  本文已影响0人  RaoZC
我们的目的是要将以下格式的数据相互转换。 数据转换

暂时没有找到一部到位的方法,只能使用较为繁琐的方法进行转换。

1 对数据进行长数据化

library(reshape2)
a = read.table("a.txt", header = T, sep = "\t", quote = "")
b = melt(a, id.vars = "GeneID")
b
转换结果

2. 拷贝到excel进行数据透视

如下图,选择数据,选择“插入”选项卡下面的“数据透视图”


image.png
得到如下结果: 初步结果
这里我们就得到初步结果,就是GO_ID对应多个Gene_ID。

3 分列

将这部分内容拷贝出来(复制-粘贴值),利用标识(Gene_ID中共同的部分,本例中为“Gene”,如果没有标识,则在原始列表中加入),我们可以把"Gene"替换成“$#Gene”,如下: 加标识符
接着我们进行分列: 分列

4. 合并

移位后,我们使用公式:=IF(B2="",B2,D1&B2) image.png

接着填补空值:如下,选择需要填补的列,接着“开始”→“查找和选择”→“定位条件”→“空值”,先按下“=”,在按住“ctrl”不放,同时按下键盘的方向键“↑”,即可自动填充空值。


image.png
用第三列进行从高到低排序,以第一列作为依据进行去重复,删除冗余列: image.png
接着按照标识(这里是“#”)进行分列: 最终结果

暂时没有找到一步到位的方法,继续补充中。

上一篇 下一篇

猜你喜欢

热点阅读