如何从具有两个值的特定列的数据框中检索所有记录

时间:2014-05-16 18:56:21

标签: r

我有一个名为“specdata”的数据框

这是数据帧规范数据的组成部分:

head(specdata)

         Date sulfate nitrate ID
1: 2003-01-01             NA          NA     1
2: 2003-01-02             NA          NA     1
3: 2003-01-03             NA          NA     1
4: 2003-01-04             NA          NA     1
5: 2003-01-05             NA          NA     1
6: 2003-01-06             NA          NA     1

tail(specdata)

         Date sulfate nitrate  ID
1: 2004-12-26      NA      NA 332
2: 2004-12-27      NA      NA 332
3: 2004-12-28      NA      NA 332
4: 2004-12-29      NA      NA 332
5: 2004-12-30      NA      NA 332
6: 2004-12-31      NA      NA 332

数据框包含1到332的ID列,硫酸盐的值不是NA。

当我试图检索ID列== 1的硫酸盐柱的所有值时,它有效 我使用下面的代码:

subset(specdata$sulfate,specdata$ID==1) 

我需要的是我应该能够检索列id = 1:20的硫酸盐的所有值,它没有用。

我使用了以下代码:

subset(specdata$sulfate,specdata$ID==1) 

Warning message:
In specdata$ID == 1:20 :
  longer object length is not a multiple of shorter object length

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:1)

如果您只是将单个矢量分组,

 specdata$sulfate[specdata$ID %in% 1:20]

应该工作得很好。 subset对于整个data.frame(如

)的子集更有用
 subset(specdata, ID %in% 1:20)

我允许您跳过显式索引(" $"或" [,]")虽然当您尝试将变量用于列名时它不起作用。