R 如果多个列(具有相似名称)符合某个条件,则保留行
我想检查几列的值是否符合条件,这些列是否有相似的名称,我尝试的是R 如果多个列(具有相似名称)符合某个条件,则保留行,r,dataframe,R,Dataframe,我想检查几列的值是否符合条件,这些列是否有相似的名称,我尝试的是 filter(df.w.meth.mean, cov.CD34.1 > 4 & cov.CD34.2 > 4 & cov.CD34.4 >4 & cov.CD34.5 >4 & cov.CD34.6 > 4) 我如何简化这一点? 我在考虑使用grep来保留具有“cov”模式但不起作用的列。 你能帮忙吗?使用dplyr::filter_at()你可以做: library
filter(df.w.meth.mean, cov.CD34.1 > 4 & cov.CD34.2 > 4 & cov.CD34.4 >4 & cov.CD34.5 >4 & cov.CD34.6 > 4)
我如何简化这一点?
我在考虑使用grep来保留具有“cov”模式但不起作用的列。
你能帮忙吗?使用
dplyr::filter_at()
你可以做:
library(dplyr)
df.w.meth.mean %>%
filter_at(vars(starts_with("cov.CD34")), ~ . > 4)
使用
dplyr::filter_at()
可以执行以下操作:
library(dplyr)
df.w.meth.mean %>%
filter_at(vars(starts_with("cov.CD34")), ~ . > 4)
在base R中,使用
grep
我们可以找到以“cov”
开头的列。我们对这些列进行子集划分,并选择所有值都大于4的行
cols <- grep("^cov", names(df.w.meth.mean))
df.w.meth.mean[rowSums(df.w.meth.mean[cols] > 4) == length(cols),]
cols 4)=长度(cols),]
在R基中,使用grep
我们可以找到以“cov”开头的列。我们对这些列进行子集划分,并选择所有值都大于4的行
cols <- grep("^cov", names(df.w.meth.mean))
df.w.meth.mean[rowSums(df.w.meth.mean[cols] > 4) == length(cols),]
cols 4)=长度(cols),]