这个例子展示了如何在表上执行计算。
的函数rowfun
和varfun
每个函数都将指定的函数应用于表,而许多其他函数需要数字或同质数组作为输入参数。可以使用点索引从单个变量中提取数据,也可以使用花括号从一个或多个变量中提取数据。然后,提取的数据是一个数组,您可以将其用作其他函数的输入。从R2018a开始,您也可以使用groupsummary
函数,用于对表中的数据组进行计算。
从逗号分隔的文本文件读取数据,testScores.csv
,将其转换为表readtable
函数。testScores.csv
包含几个学生的考试分数。使用文本文件第一列中的学生名作为表中的行名。
T = readtable (“testScores.csv”,“ReadRowNames”,真正的)
T =10×4表性别Test1 Test2 Test3 __________ _____ _____ _____ 霍华德{‘男性’}{‘男性’}90 87 93病房87 85 83托雷斯{‘男性’}彼得森{‘女性’}86 85 88 75 80 72灰色{‘女性’}89 86 87拉米雷斯{‘女性’}96 92 98詹姆斯沃森{‘男性’}78 75 77{‘女性’}布鲁克斯{‘女性’}91 94 92 86 83 85凯利{‘男性’}79 76 82
T
是一个包含10行和4个变量的表。
属性可以查看每个变量的数据类型、描述、单位和其他描述性统计信息总结
函数来总结表格。
总结(T)
变量:性别:10x1字符向量单元格数组Test1: 10x1 double Values: Min 75 Median 86.5 Max 96 Test2: 10x1 double Values: Min 75 Median 85 Max 94 Test3: 10x1 double Values: Min 72 Median 86 Max 98
摘要包含每个测试的最低、中值和最高分数。
使用花括号从第二个、第三个和第四个变量中提取数据,{}
,求每一行的平均值,并将其存储在一个新变量中,TestAvg
.
T.TestAvg =意味着(T{: 2:结束},2)
T =10×5表性别Test1 Test2 Test3 TestAvg __________ _____ _____ _____ _______ 霍华德{‘男性’}90 87 93 90病房{‘男性’}87 85 83 85托雷斯{‘男性’}彼得森{‘女性’}86 85 88 86.333 75 80 72 75.667灰色{‘女性’}89 86 87 87.333拉米雷斯{‘女性’}96 92 98 95.333詹姆斯沃森{‘男性’}78 75 77 76.667{‘女性’}91 94 92 92.333 86年布鲁克斯{‘女性’}83 85 84.667 KELLY {'male'} 79 76 82 79
或者,您可以使用变量名,T{:{‘Test1’,‘Test2’,‘Test3}}
或者变量指标,T {: 2:4}
选择数据的子集。
计算的平均值和最大值TestAvg
根据学生的性别。首先,使用varfun
函数。
varfun (@mean T“数据源”,“TestAvg”,...“GroupingVariables”,“性别”)
ans =2×3表性别GroupCount mean_TestAvg __________ __________ ____________ {' 女性的}5 87.067{‘男性’}5 83.4
从R2018a开始,您也可以使用groupsummary
函数对表中的数据组执行计算。的最大值TestAvg
为每组学生使用groupsummary
.
groupsummary (T)“性别”,“马克斯”,“TestAvg”)
ans =2×3表性别GroupCount max_TestAvg __________ __________ ___________ {' 女性的}5 95.333{‘男性’}5 90
每次考试的最高分数是100分。使用大括号从表格中提取数据,并将测试分数转换为25分。
T T{: 2:结束}={:2:结束}* 25/100
T =10×5表性别Test1 Test2 Test3 TestAvg __________ _____ _____ _____ _______ 霍华德{‘男性’}22.5 21.75 23.25 22.5病房{‘男性’}21.75 21.25 20.75 21.25托雷斯{‘男性’}21.5 - 21.25 22 21.583彼得森{‘女性’}18.75 20 18 18.917灰色{‘女性’}22.25 21.5 21.75 21.833拉米雷斯{‘女性’}24日23日24.5 - 23.833詹姆斯{‘男性’}19.5 18.75 19.25 19.167沃森{'female'} 19.75 23.5 23 23.083 BROOKS {'female'} 21.5 20.75 21.25 21.167 KELLY {'male'} 19.75 19 20.5 19.75
将变量名改为TestAvg
来最后
.
T.Properties。VariableNames{结束}=“最后一次”
T =10×5表性别Test1 Test2 Test3决赛 __________ _____ _____ _____ ______ 霍华德{‘男性’}22.5 21.75 23.25 22.5病房{‘男性’}21.75 21.25 20.75 21.25托雷斯{‘男性’}21.5 - 21.25 22 21.583彼得森{‘女性’}18.75 20 18 18.917灰色{‘女性’}22.25 21.5 21.75 21.833拉米雷斯{‘女性’}24日23日24.5 - 23.833詹姆斯{‘男性’}19.5 18.75 19.25 19.167沃森{'female'} 19.75 23.5 23 23.083 BROOKS {'female'} 21.5 20.75 21.25 21.167 KELLY {'male'} 19.75 19 20.5 19.75
表格
|总结
|rowfun
|varfun
|findgroups
|splitapply
|groupsummary