【发布时间】:2012-09-19 16:56:12
【问题描述】:
我正在做一个实验,其中我有一些“区域”和一些相关的统计数据(实际上是许多其他统计数据和描述性列),以及一个逗号分隔的位于这些区域的基因列表。此列表的数量可变,并且可能不包含任何内容(“NA”)。
我怎样才能“融化”表a:
region_id statistic genelist
1 2.5 A, B, C
2 0.5 B, C, D, E
3 3.2 <NA>
4 0.1 E, F
要创建另一个表,为基因列表中的每个基因创建一个单独的条目?即
region_id statistic gene
1 2.5 A
1 2.5 B
1 2.5 C
2 0.5 B
2 0.5 C
2 0.5 D
2 0.5 E
3 3.2 <NA>
4 0.1 E
4 0.1 F
我猜有一种方法可以用 R/plyr 做到这一点,但我不确定如何。提前致谢。
编辑:
使用 R,您可以使用以下代码重新创建这些玩具矢量:
a <- structure(list(region_id = 1:4, statistic = c(2.5, 0.5, 3.2,
0.1), genelist = structure(c(1L, 2L, NA, 3L), .Label = c("A, B, C",
"B, C, D, E", "E, F"), class = "factor")), .Names = c("region_id",
"statistic", "genelist"), class = "data.frame", row.names = c(NA,
-4L))
b <- structure(list(region_id = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L,
4L, 4L), statistic = c(2.5, 2.5, 2.5, 0.5, 0.5, 0.5, 0.5, 3.2,
0.1, 0.1), gene = structure(c(1L, 2L, 3L, 2L, 3L, 4L, 5L, NA,
5L, 6L), .Label = c("A", "B", "C", "D", "E", "F"), class = "factor")), .Names = c("region_id",
"statistic", "gene"), class = "data.frame", row.names = c(NA,
-10L))
【问题讨论】:
-
该表格是制表符分隔的还是固定宽度的?
-
TLP - 抱歉。页面标题以“perl - Melt...”开头,因为 perl 是最常用的标签。我不知道这是如何工作的,所以我删除了 Perl 标签,看看它是否会变成“R”,然后我把它放回去了。当我看到你的回答时,我很感激。
-
我明白了。好吧,在这种情况下,我会取消删除我的答案。
标签: perl r data.table plyr reshape