我想基于逻辑向量提取数据帧的列。我的数据框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
答案 0 :(得分:2)
我们可以使用[
提取列,因为x
是一个逻辑向量,它只会选择与&#39; x&#39;中的TRUE值对应的列。
df[x]
此外,通过行,列索引,指定,
以分隔行和列索引(即df[,x]
)可能很有用。如果我们不使用,
,默认情况下会选择列索引。当我们使用,
时,如果&#39; x&#39;中只有一个TRUE
值,则data.frame
将转换为vector
我们默认drop=TRUE
与[
。然后,我们可能需要指定df[,x, drop=FALSE]
。