0

我需要grep在一定范围内的值。我怎么写这个?

我尝试了不同的方法,例如选择之间的所有内容0 and 1 - 称之为 A

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

2 回答 2

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/ 。

于 2013-05-06T18:46:07.637 回答
1

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

my @mydata = (-0.1, 0, 0.1, 0.5, 1, 1.1);
my @selected = grep {0 <= $_ && $_ <= 1} @mydata;
于 2013-05-06T15:21:08.323 回答