2013-05-06 152 views
0

我需要grep值在一定範圍內。 我會如何寫這個?如何使用grep的值<=小於等於大於等於?

我嘗試過不同的事情,例如 爲0 and 1之間進行選擇的一切 - 稱之爲

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

你的問題沒有道理。提供一些上下文以及樣本輸入和預期輸出。 – 2013-05-06 12:22:27

+0

考慮使用awk。 – devnull 2013-05-06 12:59:56

回答

1

這Perl代碼使用grep到0和1(含)之間進行選擇的一切。

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

嗨,我想在R中運行它 - 我忘了提及。此代碼不適用於r?謝謝 – RNewbi 2013-05-06 17:44:23

+0

我建議你刪除perl標籤並用R替換它 – stevenl 2013-05-06 18:07:36

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/