R 同时筛选和限制数据帧行

R 同时筛选和限制数据帧行,r,R,如何将筛选器应用于数据帧并仅选择前100行 通过两个操作,我可以做到这一点: df1 = df[ 1:100, ] df2 = [ grep('requiredvalue', df1$var) ] 问题:如何在一次操作中做到这一点,例如: df1 = df[ 1:100, grep('somevalue', df$var) ] 您可以使用: df[1:100, ][grep('somevalue', df$var[1:100]), ] 或: 使用dplyr library(dply

如何将筛选器应用于数据帧并仅选择前100行

通过两个操作,我可以做到这一点:

 df1 = df[ 1:100, ]
 df2 =  [ grep('requiredvalue', df1$var) ]
问题:如何在一次操作中做到这一点,例如:

 df1 = df[ 1:100, grep('somevalue', df$var) ]
您可以使用:

df[1:100, ][grep('somevalue', df$var[1:100]), ]
或:


使用
dplyr

library(dplyr)
filter(df1, (row_number() %in% 1:100) & grepl('somevalue', var))
用这个例子

filter(df1, (row_number() %in% 1:20) & grepl('A', var))
#   var       val
#1   A -4.469564
#2   A  0.369045
#3   A -1.822190
或使用
base R

 df1[1:nrow(df1)%in% 1:20  & grepl('A', df1$var),]
 #   var       val
 #17   A -4.469564
 #18   A  0.369045
 #20   A -1.822190
数据
set.seed(24)
df1您还可以:

创建虚拟数据

df = data.frame(v1=c("a", "b", "c"), v2=rnorm(3000))
仅选择第一列中有b的行

head(df[df$v1=="b",], 100)

您不需要在
df2=[grep(“requiredvalue”,df1$var)]
中添加一个逗号吗?还是我误解了您的代码?
df = data.frame(v1=c("a", "b", "c"), v2=rnorm(3000))
head(df[df$v1=="b",], 100)