在一个数据集搜索值

19日视图(30天)
马克
马克 2012年2月27日
我需要一些过滤器应用于数据集,或只是寻找一些特定的数量。然而,我收到一个错误的eq操作符没有定义数据集。我知道我可以转换为一个特定的列,例如,双,然后使用两倍的eq操作符,但是如果数据集很大,我担心由于常数转换性能开销。
所以
  • 有没有办法将过滤器应用到数据集没有将它首先转换为其他类型(如双)?
  • 有什么方法可以寻找特定列中的值的数据集没有将这些列第一转换为其他类型(如双)?
谢谢提前

接受的答案

彼得·珀金斯
彼得·珀金斯 2012年2月27日
通常,这是你想做的事情挑选数据数组的行:
> >加载医院
> >医院(医院。年龄>45 & hospital.Sex==“男”,{“姓”“年龄”“烟民”})
ans =
年龄吸烟者
koq - 996“马丁”48真实
xba - 581“罗宾逊”50个假
yyv - 570“斯科特。”47个假
flj - 908“斯图尔特”49个真实
道- 529“芦苇”50个真实
fcd - 425冈萨雷斯的48个假
mez - 469“格里芬”49个假
zzb - 405“海斯”48个假
真的没有任何需要显式地“转换”年龄翻倍,只要加下标使用点,你回到年龄变量本身。同样的性变量。优越的性能,这是(内部)的共享副本已经存在的东西,所以它应该很快。
3评论
彼得·珀金斯
彼得·珀金斯 2012年2月28日
是的,就像一个结构数组,您可以使用“点括号”语法如果存储在一个字符串变量的名称。
你最初的猜测,涉及
医院:{strField}) = = strValue
说明了一点,有时候很难理解:一个数据数组(就像一个细胞阵列)是一个容器,并使用括号加下标“containerness”保留,所以医院(:,{strField})是数据数组只包含一个变量,但不是一样的变量。与标量结构一样,它的点加下标,让你的“内容”。
一个小点:医院(:,strField)(没有strField周围的括号)会很好,因为你只有一个变量的名字。

登录置评。

更多的答案(0)