2017-04-19 109 views
-1

我有一個數據列的因子變量。它包含33個級別,據我所知每個級別都有一個1-33的整數值。我想知道如何在子集化行時引用該值而不是級別標籤?如何使用r中因子水平的索引數值?

繼承人我學嘗試在寫它的代碼:

貝克斯利< -

我想創建一個新的對象「貝克斯利」只包含一級子集([3] LE2016,區),其中從數據框'LE2016'分配了3的整數值。

感謝

+0

你能舉一個可重複的例子嗎? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

我不知道你在問什麼。像這樣? LE2016 < - data.frame(borough = factor(1:30));庫(dplyr); Bexley < - filter(LE2016,borough == 3) –

+0

提取變量中因子的級別: lev <-levels(factor_Variable) 然後,您可以使用此「lev」變量包含子因子級別的因子。 – TUSHAr

回答

0

您可以使用cas.numeric強迫整數的因素,然後做子集。這裏有一個簡單的例子:

library(dplyr) 
DF <- data.frame(f=factor(c("a", "b", "c", "a", "b", "c"), levels=c("a", "b", "c"))) 
DF 
    f 
1 a 
2 b 
3 c 
4 a 
5 b 
6 c 
# filter out the 3th level 
DF %>% filter(c(f) == 3) 
    f 
1 c 
2 c 

# c will coerce factor to integer 
c(DF$f) 
[1] 1 2 3 1 2 3