如何通过grepl提取基于值的子集

如何通过grepl提取基于值的子集,r,dataframe,R,Dataframe,嗨,我想从120.5开始提取所有的观察结果,我用下面的方法来做 a<-c(120.1,120.3,120.5,120.566) Part<-c(1,2,3,4) DFFF<-data.frame(a,Part) lill <- subset(DFFF, grepl('^120.5', a), select = Part) > lill Part 3 3 我希望结果是3和4。如何在R中实现这一点。因为您只对一个数值变量进行子集设置,@NelsonGon的解

嗨,我想从120.5开始提取所有的观察结果,我用下面的方法来做

a<-c(120.1,120.3,120.5,120.566)
Part<-c(1,2,3,4)
DFFF<-data.frame(a,Part)
lill <- subset(DFFF, grepl('^120.5', a), select = Part)
> lill
  Part
3    3

我希望结果是3和4。如何在R中实现这一点。

因为您只对一个数值变量进行子集设置,@NelsonGon的解DFFF[DFFF$a>=120.5]绝对是第一个选项。如果出于某种原因,您必须使用grepls,您可以使用如下子集:

DFFF[grepl("120.5", DFFF$a), ]
        a Part
3 120.500    3
4 120.566    4

但请记住,这只适用于a中的数字不等于或大于120.6的情况;所有这些值都不会匹配。

因为您只对数值变量进行子集设置,@NelsonGon的解决方案DFFF[DFFF$a>=120.5]绝对是第一个选项。如果出于某种原因,您必须使用grepls,您可以使用如下子集:

DFFF[grepl("120.5", DFFF$a), ]
        a Part
3 120.500    3
4 120.566    4
但请记住,这只适用于a中的数字不等于或大于120.6的情况;所有这些值将不匹配。

在基本R中

ind <- which(DFFF$a >= 120.5)
lill <- DFFF$Part[ind]
在R底

ind <- which(DFFF$a >= 120.5)
lill <- DFFF$Part[ind]

你很接近,需要报价

lill <- subset(DFFF, grepl('^120.5', a), select="Part")
lill
#   Part
# 3    3
# 4    4

你很接近,需要报价

lill <- subset(DFFF, grepl('^120.5', a), select="Part")
lill
#   Part
# 3    3
# 4    4
可以做:DFFF[DFFF$a>=120.5,部分]或使用DFFF[grep'120.5',DFFF$a,部分]可以做:DFFF[DFFF$a>=120.5,部分]或使用DFFF[grep'120.5',DFFF$a,部分]