我在R中有一个data.frame.我想在两个不同的列上尝试两种不同的条件,但我希望这些条件具有包容性.因此,我想用"OR"来结合条件.当我想使用"AND"条件时,我已经使用了以下语法,并取得了很多成功.
my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ]
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在上面使用'OR'.
我很熟悉能够从R数据框(或矩阵)中提取列,如下所示:
df.2 <- df[, c("name1", "name2", "name3")]
Run Code Online (Sandbox Code Playgroud)
但是,可以使用一个!或其他工具来选择除列出的列之外的所有列吗?
对于背景,我有一个包含很多列向量的数据框,我想避免:
df.2 <- df[, c(1,3,5)]因为当我的.csv文件发生变化时,我的代码就变成了问题,因为编号不再相同了.我是R的新手,并且认为我已经学会了很难不使用数字向量来获得更大的df.我试过了:
df.2 <- df[, !c("name1", "name2", "name3")]
df.2 <- df[, !=c("name1", "name2", "name3")]
Run Code Online (Sandbox Code Playgroud)
正如我输入这个,发现这有效:
df.2 <- df[, !names(df) %in% c("name1", "name2", "name3")]
Run Code Online (Sandbox Code Playgroud)
有没有比上一个更好的方法?
我很感激您对子集数据框的建议.让我们考虑一个示例数据框df:
dd <- c(1,2,3)
rows <- c("A1","A2","A3")
columns <- c("B1","B2","B3")
numbers <- c(400, 500, 600)
df <- dataframe(dd, rows, columns, numbers)
Run Code Online (Sandbox Code Playgroud)
和矢量: test_rows <-c("A1","A3")
我如何以这样一种方式df对向量的数据帧功能进行子集化,test_rows即只列出与("A1"和"A3")元素匹配的数据帧df(df$rows)行test_rows?