2014-06-14 103 views
0

一列中的下列数据帧被转换成动物园对象如何选择包含特定值

Lines <- "Ctry year Carx Brx 
A 2000 23  12 
A 2001 18  16 
A 2002 20  20 
A 2003 NA  18 
A 2004 24  NA 
A 2005 18  12 
B 2000 NA  22 
B 2001 NA  20 
B 2002 NA  14 
B 2003 NA  NA 
B 2004 18  NA 
B 2005 16  14 
C 2000 NA  NA 
C 2001 NA  25 
C 2002 24  32 
C 2003 21  NA 
C 2004 NA  15 
C 2005 24  20 
" 
DF <- read.table(text = Lines, header = TRUE) 


    Carx.z <- read.zoo(DF[, -4], split = "Ctry", index = "year", FUN = identity) 

这里是动物园对象串联CARX

Carx.z

的结果
 A B C 
    2000 23 NA NA 
    2001 18 NA NA 
    2002 20 NA 24 
    2003 NA NA 21 
    2004 24 18 NA 
    2005 18 16 24 

如何选择“Ctry”(即A,B或C),如果其2005年的值小于或等于等于20?我的意思是,如果2005年的值为< = 20,请选择相关列

+1

这不是输出I得到'Carx.z'当我运行你的代码,但无论如何:' Carx.z [,Carx.z ['2005'] <= 15]'。这是一个逻辑向量的基本子集。 – jbaums

+0

好的,以及我上面的评论仍然适用..只需将15改为20.这是不是你所需要的? – jbaums

+0

这就是我想要的,谢谢jbaums –

回答

0

通常的子集规则适用于此处。我们要返回其Carx.z['2005', ] <= 20TRUE列,所以下面的嵌套子你想要做什么:

Carx.z[, Carx.z['2005', ] <= 20] 

#  A B 
# 2000 23 NA 
# 2001 18 NA 
# 2002 20 NA 
# 2003 NA NA 
# 2004 24 18 
# 2005 18 16 
相关问题