7

我有一个吐出矩阵的函数,例如:

      x freq
1 FALSE   40
2  TRUE    6

但是当没有 FALSE 值时,我得到

     x freq
1 TRUE   46

我想在 x=TRUE 时提取频率值。如果总是同时存在 FALSE 和 TRUE 值,我可以这样做

> matrix [2,2]
[1] 6

但无论是否存在 FALSE 值,我都希望能够提取 TRUE 值。有谁知道我该怎么做?提前致谢!

4

1 回答 1

21

正如@Justin 所说,您可能正在使用 adata.frame而不是 a matrix。一切都好。使用上面的示例,如果您的 data.frame 如下所示:

df <- data.frame(x=c(FALSE,TRUE), freq=c(40, 6))
> df
      x freq
1 FALSE   40
2  TRUE    6

无论是否有FALSE值,以下内容都会为您提供所需的内容。

df$freq[df$x==TRUE]
[1] 6

编辑df$x:正如@DWin 指出的那样,您可以通过使用合乎逻辑的事实进一步简化:

> df$freq[df$x]
[1] 6
> df$freq[!df$x]
[1] 40

例如:

> df2 <- data.frame(x=TRUE, freq=46)
> df2
     x freq
1 TRUE   46

仍然有效:

> df2$freq[df2$x==TRUE]
[1] 46
于 2013-09-09T20:59:09.637 回答