gpt4 book ai didi

r - R 中的 reshape2 中是否有与 'melt' 类似的功能,可在 MatLab 中使用?

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:45 24 4
gpt4 key购买 nike

我试图在 MatLab 中找到一个类似于 R 包“reshape2”中的“熔化”函数的函数,这样行标题会为每个变量重复并堆叠在一起。

例如:

如果我有一个矩阵

A  1  2  3 
B 4 5 6
C 7 8 9

我想把它改成

A 1
A 2
A 3
B 4
B 5
B 6
C 7
C 8
C 9

缺少一个 for() 循环来成对地遍历每一列,是否有一个函数可以做到这一点?

非常感谢,科罗拉多州

最佳答案

Matlab有stackunstack函数,对表进行操作,类似于meltcast。像这样的东西会起作用

groups = {'A'; 'B'; 'C'};
A1 = [1; 4; 7];
A2 = [2; 5; 8];
A3 = [3 ; 6; 9];

T = table(groups, A1, A2, A3)
TLong = stack(T, 2:4)

给出

TLong = 

groups A1_A2_A3_Indicator A1_A2_A3
______ __________________ ________

'A' A1 1
'A' A2 2
'A' A3 3
'B' A1 4
'B' A2 5
'B' A3 6
'C' A1 7
'C' A2 8
'C' A3 9

请注意,您的示例矩阵不能存在于 Matlab(或 R)中,因为矩阵不能包含字符串或混合类型。如果您想使用内置函数,我建议您将现有的任何结构转换为 table

关于r - R 中的 reshape2 中是否有与 'melt' 类似的功能,可在 MatLab 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865877/

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