【发布时间】:2011-12-05 15:44:02
【问题描述】:
我有一个正在使用的大型数据框,前几行如下:
Assay Genotype Sample Result
1 001 G 1 0
2 001 A 2 1
3 001 G 3 0
4 001 NA 4 NA
5 002 T 1 0
6 002 G 2 1
7 002 T 3 0
8 002 T 4 0
9 003 NA 1 N
10 003 G 2 1
11 003 G 3 1
12 003 T 4 0
我总共将处理 2000 个样本和每个样本的 168 个检测。对于每个样本,我想为每个样本提取“结果”中的数据,以创建如下所示的列表或数据框:
Sample Data
1 00N
2 111
3 001
4 N00
因此,生成的数据帧(或类似的首选数据结构)将是 2000 行和 2 列。 'Data' 行将包含 168 个字符,每个字符对应于每个 'Assay'。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
第 4 行有轻微的错字吗?应该改为 NA00 吗?
-
我实际上更喜欢将最终字符串的“NA”缩短为 N。如果它更容易,我可以忍受它。
-
一个简单的答案是
gsub("NA", "N", yourData) -
@Chase 当我在我的数据帧上运行 gsub 时,我得到了我不知道如何使用的数据格式。在 cmets 中发布这里太长了,但它似乎将我的数据框分成了两个不同的字符列表。你能告诉我如何维护我的数据框结构并仍然进行这些更改吗?
-
查看我编辑的答案,结合@Brian 的观点和上面关于 gsub 的一点。干杯。