2016-01-28 57 views
-1

我想基於邏輯向量提取數據幀的列。我的數據幀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

+2

請閱讀R入門教程。這是_really_基本的東西。使用谷歌搜索你的頭銜(加上「R」)會給你答案。 – Henrik

回答

2

我們可以使用[來提取列,因爲x是一個邏輯向量,它只會選擇與'x'中的TRUE值對應的列。

df[x] 

而且,由行,列索引,它可能是有用的指定,分開的行和列指數,即df[,x]。如果我們不使用,,默認情況下,列索引被選中。當我們使用,,並且如果'x'中只有單個值TRUE,那麼data.frame將被轉換爲vector,因爲默認情況下我們有drop=TRUE[。那麼,我們可能需要指定df[,x, drop=FALSE]

相關問題