问题描述
我有一个数据集,其中以不同的方式测量了相同的效果,我想比较这些测量值.我的数据集如下所示:
I have a dataset where the same effect was measured in different ways and I want to compare those measurements. My dataset looks like this:
Study MType ID Insect Mean Sd N
Alla Fecundity 1 Aphid .62 .7628 11
Alla RGR 1 Aphid -32.8 7.76 11
Ando Survival 2 Bee 2.34 .67 8
Ando RGR 2 Bee 4.56 .34 10
Ando Fecundity 2 Bee 5.32 4.3 20
我想按 ID 号组合行,以便保留每行的 MType、Mean、Sd 和 N(尽管需要更改列名,以便可以区分列).
I want to combine the rows by ID number so that the MType, Mean, Sd and N for each row are preserved (although the column names need to change so the columns are distinguishable).
希望最终看起来像:
Study ID Insect Fecundity.mean Fecundity.Sd Fecundity.N RGR.mean RGR.Sd...etc
一些困难:
- 大约有 10 种不同的 MType
- 每个 ID 号有 2 到 4 个 MType
我搞砸了 reshape 和 tidyr,我一直无法弄清楚如何用它们中的任何一个来做到这一点.请帮忙!
I have messed around with reshape and with tidyr and I haven't been able to figure out how to do this with either of them. Please help!
推荐答案
您可以通过基础 R 使用 reshape
.您想根据这篇文章将数据从长格式转换为宽格式:如何将数据从长格式重塑为宽格式?.
You can use reshape
via base R. You want to transform your data from long to wide format according to this post: How to reshape data from long to wide format?.
如果您的数据在 data.frame
d:
If your data is in a data.frame
d:
reshape(d, idvar=c("ID", "Study", "Insect"), timevar = "MType", direction="wide")
结果:
Study ID Insect Mean.Fecundity Sd.Fecundity N.Fecundity Mean.RGR Sd.RGR N.RGR Mean.Survival Sd.Survival N.Survival
1 Alla 1 Aphid 0.62 0.7628 11 -32.80 7.76 11 NA NA NA
3 Ando 2 Bee 5.32 4.3000 20 4.56 0.34 10 2.34 0.67 8
这篇关于将多行与多列数据R合并为一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!