TJ *_* Wu 2 boolean-logic r dataframe
我有一张像这样的桌子
C1 C2 C3 C4 C5....
R1 FALSE FALSE TRUE TRUE
R2 FALSE FALSE NA TRUE
R3 NA NA NA TRUE
R4 NA FALSE FALSE FALSE
R5 NA NA NA NA
.
.
.
Run Code Online (Sandbox Code Playgroud)
我想保留所有包含至少一个 TRUE 的行。在该表中,需要保留 R1、R2 和 R3。然后,我可以从同一个表中提取另一列(C21)的值。
请给我一些建议,谢谢!
# Example
x <-
matrix(c(FALSE, FALSE, NA, NA, NA, FALSE, FALSE, NA, FALSE, NA, TRUE, NA, NA, FALSE, TRUE, TRUE, FALSE, NA),
nrow = 5, ncol = 4, dimnames = list(paste0("R", 1:5), paste0("C", 1:4)))
x
# C1 C2 C3 C4
# R1 FALSE FALSE TRUE TRUE
# R2 FALSE FALSE NA FALSE
# R3 NA NA NA NA
# R4 NA FALSE FALSE FALSE
# R5 NA NA TRUE FALSE
# apply the 'any()' function to the rows, this will return true if there is at
# least one TRUE in the row
apply(x, 1, any)
# R1 R2 R3 R4 R5
# TRUE NA NA NA TRUE
# use 'which' to get the row index
which(apply(x, 1, any))
# R1 R5
# 1 5
# subset the matrix
idx <- which(apply(x, 1, any))
x[idx, ]
# C1 C2 C3 C4
# R1 FALSE FALSE TRUE TRUE
# R5 NA NA TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6091 次 |
| 最近记录: |