基于逻辑向量提取数据帧列

时间:2016-01-28 07:30:22

标签: r dataframe

我想基于逻辑向量提取数据帧的列。我的数据框df

structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4), 
    Sepal.Width = c(3.5, 3, 3.2, 3.1, 3.6, 3.9), Petal.Length = c(1.4, 
    1.4, 1.3, 1.5, 1.4, 1.7), Petal.Width = c(0.2, 0.2, 0.2, 
    0.2, 0.2, 0.4), Species = structure(c(1L, 1L, 1L, 1L, 1L, 
    1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length", 
"Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 
6L), class = "data.frame")

我有一个逻辑向量说x <- c(TRUE,FALSE,TRUE,TRUE,FALSE)。如何提取逻辑TRUE

的列

1 个答案:

答案 0 :(得分:2)

我们可以使用[提取列,因为x是一个逻辑向量,它只会选择与&#39; x&#39;中的TRUE值对应的列。

df[x]

此外,通过行,列索引,指定,以分隔行和列索引(即df[,x])可能很有用。如果我们不使用,,默认情况下会选择列索引。当我们使用,时,如果&#39; x&#39;中只有一个TRUE值,则data.frame将转换为vector我们默认drop=TRUE[。然后,我们可能需要指定df[,x, drop=FALSE]