我需要使用r的帮助。
实际上我有一个数据框,例如:
Groups Species Value
Group1 Sp1 0.1
Group1 Sp1 0.2
Group1 Sp2 0.3
Group1 Sp3 0.4
Group1 Sp4 0.5
Group2 Sp2 0.6
Group2 Sp3 0.7
Group2 Sp4 0.8
Group3 Sp1 0.9
Group3 Sp3 0.10
Group3 Sp3 0.11
Group3 Sp3 0.14
(顺便说一句,如果有人具有允许以编码格式导出数据帧的功能,那我会更好)
想法是将该数据帧转换为另一个数据帧。
您会看到3 groups
,并且在组内我们可以拥有duplicate species
,例如Sp1 in Group1
。
所以我应该得到一个像这样的矩阵:
Group1 Group2 Group3
Sp1 0.15 NA 0.9
Sp2 0.3 0.6 NA
Sp3 0.4 0.7 0.1167
Sp4 0.5 0.8 NA
从此输出中可以看到,我将“组”放在行Species
的列中,其值是Values
中的first data frame
。
但是最重要的是,当存在重复的Sp1 in Group1
或Sp3 in Group3
时,我会计算这些值的平均值。
有人为此有一个主意吗? ultime对象是从此矩阵中获取heatmap
。
谢谢您的帮助。
答案 0 :(得分:1)
summarise
带mean
和spread
library(dplyr)
df %>%
group_by(Groups, Species) %>%
summarise(Value = mean(Value)) %>%
tidyr::spread(Groups, Value)
# Species Group1 Group2 Group3
# <fct> <dbl> <dbl> <dbl>
#1 Sp1 0.15 NA 0.9
#2 Sp2 0.3 0.6 NA
#3 Sp3 0.4 0.7 0.117
#4 Sp4 0.5 0.8 NA