Select 行具有多个使用逻辑运算符的值的数据框
Select rows of data frame with several values using logical operators
我在基于逻辑运算符的数据框中对 select 行数据使用方括号。例如,如果我有一个数据框
df = data.frame(Letter = rep(c("A", "B", "C", "D", "E"), 10), Number = rep(c(1:25), 4))
我想要 select 包含字母 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()
或其他函数来做,但如果方括号真的不可能,那么我会接受其他想法
你可以这样做:
df <- df[df$Letter %in% c("A", "B", "C"),]
对于这些实例,我使用 dplyr
包。
library(dplyr)
new.df <- df %>%
filter(Letter %in% c("A", "B", "C"))
希望对您有所帮助,
干杯!
PS: dplyr作弊sheet是here
我在基于逻辑运算符的数据框中对 select 行数据使用方括号。例如,如果我有一个数据框
df = data.frame(Letter = rep(c("A", "B", "C", "D", "E"), 10), Number = rep(c(1:25), 4))
我想要 select 包含字母 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()
或其他函数来做,但如果方括号真的不可能,那么我会接受其他想法
你可以这样做:
df <- df[df$Letter %in% c("A", "B", "C"),]
对于这些实例,我使用 dplyr
包。
library(dplyr)
new.df <- df %>%
filter(Letter %in% c("A", "B", "C"))
希望对您有所帮助,
干杯!
PS: dplyr作弊sheet是here