相对于第二列“绘制”一列,并插入第三列中的值

时间:2019-06-14 15:55:41

标签: r datatable multiple-columns

“ plot”一词的选择不多,因为我不想绘制,而只是制作一张桌子。我希望在查看我的桌子时更清楚一些。 所以这里的描述:每个成对的比较,我都有大约20个总体和Fst值。我想将所有人口放在第一列,并将所有20个人口放在第一行。然后,我想根据比较的两个总体,在每个“单元格”中插入Fst值。 我需要的所有数据都存在于导入到R的excel工作表中(请参见下面的示例,它有些歪曲,但我希望您仍然可以理解)。 有人能帮忙吗?我搜索过的所有内容与我要执行的操作都不完全相同。我尝试使用dcast,但这也不起作用。

我的桌子长什么样:

     Population.1     Population.2       Fst_mean    
1   North             South           0.35960000        
2   North              East           0.29542000        
3   North              West           0.081191    
4   North           Southwest         0.102930    
5   North           Southeast         0.072594

我想在R中实现什么:

        North     South      East         West       Southwest     Southeast
North    NA     0.35960000  0.29542000  0.081191     0.102930      0.072594    
South  0.84837     NA        0.124200   0.743233     0.226137      0.364200    
East   0.12530   0.384800     NA        0.126203     0.137389  etc.    
West    
Southwest    
Southeast

dcast(Fst_data, Population.1 + Population.2 ~ Fst_mean)

1 个答案:

答案 0 :(得分:0)

我认为你想要

dcast(Fst_data, Population.1 ~ Population.2, value.var = "Fst_mean")

这是一个例子

library(data.table)  

df <- data.table(cbind(expand.grid(1:10, 10:1), value = rnorm(100)))

dcast(df, Var1 ~ Var2, value.var = "value")