Unstack——创建一些新的值

2视图(30天)
Andres Tapia
Andres Tapia 2020年9月24日
评论道: 哈斯Bhutiya 2020年10月15日
你好,
我使用一个表,包含3个变量,第一个是分类(id_number),第二个是datetime (MM / dd / yyy HH: MM),最后一个是数字(假设Var_3)。
我需要unstack表,这样我得到一个新的表与许多科勒姆id_number和datetime值Var_3,我写的代码是:
负载data.mat
:表(1:5)
c = nnz(表。Var_3 > 90)
tableNew = unstack(表,“Var_3”,“id_number”);%作为dataNew.mat上传
:tableNew (1:5)
cNew = nnz (tableNew。NA10 > 90)%测试如果有值大于90的NA10 id_number
但不知何故我获得表所需的格式创建一些新值在3485行号,与价值约90,这是完全错误的,因为这些值原始表中不存在。Var_3值的正常范围是-10到大约35(这些都是环境温度确实)。
c = 0和cNew = 115
谢谢你们!
1评论
哈斯Bhutiya
哈斯Bhutiya 2020年10月15日
当你unstack表,如果有多个行,表中有相同的值对于id_number和datetime,那么所有这些值将聚合。默认的总和,所以你的价值观正在总结,因此你看到的值大于90。根据你的数据你可能想改变AggregationFunction @mean或@unique。
> > ([t =表“一个”;“一个”;“B”;“B”],[3、4、3,4],[1;2;3;4]);
> > t = (t, t)
t =
8×3表
Var1Var2Var3
____________
“一个”3个1
“一个”4个2
“B”3个3
“B”4个4
“一个”3个1
“一个”4个2
“B”3个3
“B”4个4
> > unstack (t)“Var3”,“Var1”)%这将总结Var3的值
ans =
2×3表
Var2一个B
______
3 2 6
4 4 8
> > unstack (t)“Var3”,“Var1”,“AggregationFunction”@mean)%这将意味着Var3的价值观
ans =
2×3表
Var2一个B
______
3一3
4 2 4

登录置评。

答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!