我正在尝试按元素的值对数组进行子集化;特别是,表示样本类的字符串。例如,使用包含Fishers Iris数据的数组irisData
:
...
4.8 3.4 1.6 0.2 "Iris-setosa"
4.8 3.0 1.4 0.1 "Iris-setosa"
6.0 3.0 4.8 1.8 "Iris-virginica"
6.9 3.1 5.4 2.1 "Iris-virginica"
6.7 3.1 5.6 2.4 "Iris-virginica"
6.9 3.1 5.1 2.3 "Iris-virginica"
...
我想执行一个只返回第5列为"Iris-setosa"
的行的操作。我希望这很简单,但我似乎无法找到一种优雅的方式来做到这一点。有什么建议吗?
R中的等效操作为irisData[species=="Iris-setosa"]
。
答案 0 :(得分:3)
这种事情可能有用:
irisdata = dataset("datasets","iris");
irisdata[irisdata[:Species] .== "setosa", :]
50x5 DataFrame
| Row | SepalLength | SepalWidth | PetalLength | PetalWidth | Species |
|-----|-------------|------------|-------------|------------|----------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | "setosa" |
| 2 | 4.9 | 3.0 | 1.4 | 0.2 | "setosa" |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 | "setosa" |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 | "setosa" |