我要做的是从这样的数据配置
SAMPLE ENTRY Rep2
4707890 23.323366 1
4707890 23.320814 2
4712037 33.1122 1
4712037 33.1122 2
4719912 3.01136 1
4719912 3.0305 2
4719912 3.01136 3
4714257 81.5364 1
4714257 86.20892366 2
就像这样
SAMPLE ENTRY Rep2 1 2 3
4707890 23.323366 1 23.323366 23.320814
4707890 23.320814 2
4712037 33.1122 1 33.1122 33.1122
4712037 33.1122 2
4719912 3.01136 1 3.01136 3.0305 3.01136
4719912 3.0305 2
4719912 3.01136 3
4714257 81.5364 1 81.5364 86.20892366
4714257 86.20892366 2
实质上,具有重复结果的样本(在表中通过具有相同的样本编号和连续的重复编号而确定)将其Entry值转换为与第一个复制相关联的列。复制数量可能会有所不同,但我从未见过它超过12个。
我怀疑它可以通过熔化/铸造类型的工艺完成,但到目前为止还没有任何乐趣。
谢谢。
答案 0 :(得分:2)
这样的东西看起来是有效的,至少对于样本数据是这样的:
DF2 = merge(DF, reshape(DF, direction = "wide", idvar = "SAMPLE", timevar = "Rep2"))
DF2[DF2$Rep2 > 1, -(1:3)] <- NA
DF2
# SAMPLE ENTRY Rep2 ENTRY.1 ENTRY.2 ENTRY.3
#1 4707890 23.32337 1 23.32337 23.32081 NA
#2 4707890 23.32081 2 NA NA NA
#3 4712037 33.11220 1 33.11220 33.11220 NA
#4 4712037 33.11220 2 NA NA NA
#5 4714257 81.53640 1 81.53640 86.20892 NA
#6 4714257 86.20892 2 NA NA NA
#7 4719912 3.01136 1 3.01136 3.03050 3.01136
#8 4719912 3.03050 2 NA NA NA
#9 4719912 3.01136 3 NA NA NA
答案 1 :(得分:1)
Alexis_laz:我发现你提出的一个变种让我在那里:
DF2&lt; - 合并(DF,dcast(DF,value.var =“ENTRY”,SAMPLE_Rep2))。 DF2 [DF2 $ Rep2&gt; 1, - (1:3)]&lt; - NA
出于某种原因'重塑'让我感到悲伤,当我应用于多列df我试图屈服于我的意志。