gpt4 book ai didi

在R中 reshape 数据框

转载 作者:行者123 更新时间:2023-12-03 14:39:05 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to reshape data from long to wide format

(12 个回答)


4年前关闭。




我在 reshape 大型数据框时遇到了困难。而且我过去相对幸运地避免了 reshape 问题,这也意味着我在这方面很糟糕。

我当前的数据框看起来像这样:

unique_id    seq   response    detailed.name    treatment 
a N1 123.23 descr. of N1 T1
a N2 231.12 descr. of N2 T1
a N3 231.23 descr. of N3 T1
...
b N1 343.23 descr. of N1 T2
b N2 281.13 descr. of N2 T2
b N3 901.23 descr. of N3 T2
...

我想:
seq    detailed.name   T1           T2
N1 descr. of N1 123.23 343.23
N2 descr. of N2 231.12 281.13
N3 descr. of N3 231.23 901.23

我查看了 reshape 包,但我不确定如何将处理因子转换为单独的列名。

谢谢!

编辑:我尝试在我的本地机器(4GB 双核 iMac 3.06Ghz)上运行它,但它一直失败:
> d.tmp.2 <- cast(d.tmp, `SEQ_ID` + `GENE_INFO` ~ treatments)
Aggregation requires fun.aggregate: length used as default
R(5751) malloc: *** mmap(size=647168) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

当我有机会时,我会尝试在我们的一台更大的机器上运行它。

最佳答案

reshape 对我来说也总是很棘手,但它似乎总是通过一些试验和错误来工作。这是我最终发现的:

> x
unique_id seq response detailed.name treatment
1 a N1 123.23 dN1 T1
2 a N2 231.12 dN2 T1
3 a N3 231.23 dN3 T1
4 b N1 343.23 dN1 T2
5 b N2 281.13 dN2 T2
6 b N3 901.23 dN3 T2

> x2 <- melt(x, c("seq", "detailed.name", "treatment"), "response")
> x2
seq detailed.name treatment variable value
1 N1 dN1 T1 response 123.23
2 N2 dN2 T1 response 231.12
3 N3 dN3 T1 response 231.23
4 N1 dN1 T2 response 343.23
5 N2 dN2 T2 response 281.13
6 N3 dN3 T2 response 901.23

> cast(x2, seq + detailed.name ~ treatment)
seq detailed.name T1 T2
1 N1 dN1 123.23 343.23
2 N2 dN2 231.12 281.13
3 N3 dN3 231.23 901.23

您的原始数据已经是长格式,但不是 melt/cast 使用的长格式。所以我重新融化了它。第二个参数(id.vars)是不要融化的东西的列表。第三个参数(measure.vars)是变化的事物的列表。

然后, Actor 使用一个公式。波浪号左边是保持原样的东西,波浪号右边是用于调节值列的列。

或多或少...!

关于在R中 reshape 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com