如何选择包含特定值的列

时间:2014-06-14 07:24:07

标签: r zoo

以下数据框转换为动物园对象

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

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

1 个答案:

答案 0 :(得分: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