从数据框创建逻辑向量

use*_*980 5 r dataframe

我有一个名为y的数据框

dput(y)
structure(list(val1 = c(25L, 615L, 30L, 76L, 97L, 211L, 0L, 40L, 
10L, 10L), val2 = c(101L, 286L, 124L, 77L, 176L, 120L, 0L, 8L, 
56L, 49L), val3 = c(157L, 454L, 106L, 242L, 144L, 31L, 0L, 40L, 
45L, 57L)), .Names = c("val1", "val2", "val3"), row.names = c(NA, 
10L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

我希望能够查看val1和val2列,如果val1> 10,则将值替换为TRUE,否则替换为FALSE并查看val2,如果val2 <5,则将值替换为TRUE,否则为FALSE

我可以使用子集函数来选择它们,而不是使用子集,我喜欢用TRUE或FALSE替换值,任何想法我将如何做到这一点?

nog*_*pes 12

只需使用布尔运算符:

y$val1 > 10 | (y$val1 <=10 & y$val2<5)
# [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)