我使用方括号根据逻辑运算符选择数据框中的数据行。例如,如果我有数据框
df = data.frame(Letter = rep(c("A", "B", "C", "D", "E"), 10), Number = rep(c(1:25), 4))
我想选择包含字母A,B或C的行我使用代码
df = df[df$Letter == "A" | df$Letter == "B" | df$Letter == "C",]
我想知道是否有一种方法可以缩小这一点,这与
有关df = df[df$Letter == c("A", "B", "C"),]
或者
df = df[df$Letter == "A" | "B" | "C",]
这两种方法都不起作用,但基本上我正在寻找一种更简单,更简单的方法来列出几个逻辑运算符。
我更喜欢使用方括号而不是subset()
或其他一些功能,但如果方括号确实不可能,那么我会接受其他想法
答案 0 :(得分:1)
你可以这样做:
df <- df[df$Letter %in% c("A", "B", "C"),]
答案 1 :(得分:0)
对于这些实例,我使用dplyr
包。
library(dplyr)
new.df <- df %>%
filter(Letter %in% c("A", "B", "C"))
我希望有所帮助,
喝彩!
PS:dplyr备忘单是here