如何使用grep表示值< =小于等于大于等于的值?

时间:2013-05-06 11:46:57

标签: r grep

我需要在某个范围之间的grep值。 我怎么写这个?

我试过不同的事情,例如 选择0 and 1之间的所有内容 - 将其命名为A

mydata[grep("<=[1]",">=[0]") , mydata_V1, perl= TRUE ), "new_variable" <- "A"

2 个答案:

答案 0 :(得分:1)

此Perl代码使用grep来选择0到1(包括)之间的所有内容。

my @mydata = (-0.1, 0, 0.1, 0.5, 1, 1.1);
my @selected = grep {0 <= $_ && $_ <= 1} @mydata;

答案 1 :(得分:1)

您的示例表达式中存在语法错误,我不确定它究竟是什么意思,但我认为您想要的是逻辑索引:

> mydata <- runif(20, 0, 2)
> mydata[mydata >= 0 & mydata <= 1] <- NA
> mydata
 [1]       NA       NA 1.655342 1.704777       NA 1.026898       NA       NA
 [9]       NA 1.316825       NA 1.498825       NA       NA 1.263354       NA
[17]       NA 1.389281       NA 1.041297

请注意使用&代替&&。如果您使用&&,则无效。

有关更多示例,请参阅http://www.cookbook-r.com/Basics/Indexing_into_a_data_structure/(包括如何对多维数据结构执行此操作)。