我有一个吐出矩阵的函数,例如:
x freq
1 FALSE 40
2 TRUE 6
但是当没有FALSE值时,我得到了
x freq
1 TRUE 46
我想在x = TRUE时提取freq值。 如果总是有FALSE和TRUE值,我可以做
> matrix [2,2]
[1] 6
但我希望能够提取TRUE值,无论是否有FALSE值。有谁知道我怎么做到这一点?提前谢谢!
答案 0 :(得分:8)
正如@Justin所说,你可能正在使用data.frame
而不是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
编辑:正如@DWin指出的那样,您可以使用df$x
合乎逻辑的事实进一步简化:
> 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