Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如果多个列(具有相似名称)符合某个条件,则保留行_R_Dataframe - Fatal编程技术网

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),]