过滤数据框结果

时间:2019-11-02 16:28:59

标签: r

我要在显示指定列时过滤值。

例如;

iris[iris$Sepal.Length > 6, ]

代码返回给我整行的间隔长度值大于“ 6”。如何缩小它的显示Sepal.length和sepal.width值的种类,例如其物种为弗吉尼亚州和杂色?

1 个答案:

答案 0 :(得分:0)

基本R:

head(iris[iris$Sepal.Length > 6 & iris$Species %in% c("virginica", "versicolor"), c("Sepal.Length", "Sepal.Width")])
#    Sepal.Length Sepal.Width
# 51          7.0         3.2
# 52          6.4         3.2
# 53          6.9         3.1
# 55          6.5         2.8
# 57          6.3         3.3
# 59          6.6         2.9

Dplyr:

library(dplyr)
iris %>%
  filter(Sepal.Length > 6, Species %in% c("virginica", "versicolor")) %>%
  select(Sepal.Length, Sepal.Width) %>%
  head()
#   Sepal.Length Sepal.Width
# 1          7.0         3.2
# 2          6.4         3.2
# 3          6.9         3.1
# 4          6.5         2.8
# 5          6.3         3.3
# 6          6.6         2.9

Data.table:

library(data.table)
data(iris)
setDT(iris)
head(iris[ Sepal.Length > 6 & Species %in% c("virginica", "versicolor"), 
           .(Sepal.Length, Sepal.Width) ])
#    Sepal.Length Sepal.Width
# 1:          7.0         3.2
# 2:          6.4         3.2
# 3:          6.9         3.1
# 4:          6.5         2.8
# 5:          6.3         3.3
# 6:          6.6         2.9