R 同时筛选和限制数据帧行
如何将筛选器应用于数据帧并仅选择前100行 通过两个操作,我可以做到这一点: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
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)