500*_*500 3 statistics numerical design-patterns wolfram-mathematica
请考虑:
dalist={{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{2.88`, 2.04`, 4.64`,0.56`, 4.92`, 2.06`, 3.46`, 2.68`, 2.72`,0.820},
{"Laura1", "Laura1", "Laura1", "Laura1", "Laura1",
"Laura1", "Laura1", "Laura1", "Laura1","Laura1"},
{"RIGHT", 0, 1, 15.1`, 0.36`, 505, 20.059375`,15.178125`, ".", "."}}
Run Code Online (Sandbox Code Playgroud)

实际数据集大约是6 000行和147列.但是上面反映了它的内容.我想计算一些基本的统计数据,比如均值.我的尝试:
Table[Mean@dalist[[colNO]], {colNO, 1, 4}]
Run Code Online (Sandbox Code Playgroud)

我怎么能创建一个功能,如:
避免使用非数值和
计算每个列表中找到的非数值的数量.
我还没有成功找到正确的模式机制.
第一个观察:你可以使用,Mean /@ dalist如果你想平均跨行.你Table这里不需要一个功能.
尝试使用Cases(文档),例如.Mean /@ (Cases[#,_?NumericQ] & /@ dalist)
如果您想要变得棘手并消除数据中没有数字元素的行(例如您的第三列),请尝试以下操作.它首先只选择具有一些数字元素的行,然后仅从这些行中获取数字元素.
Mean /@ (Cases[#,_?NumericQ] & /@ (Cases[dalist, {___,_?NumericQ,___}]))
Run Code Online (Sandbox Code Playgroud)
要计算非数字元素,您将使用类似的方法:
Length /@ (Cases[#,Except[_?NumericQ]] & /@ dalist)
Run Code Online (Sandbox Code Playgroud)
这个答案有一点需要注意,我在没有Mathematica安装的情况下输入它来实际检查我的语法.一些拼写错误可能会重演.