2011-12-20 146 views
1

我需要在r中使用兩列向量。在第一列中,我有日期,2011年12月21日的格式,我在第二列255格式中有一個數字。使用r讀取2列向量的元素並返回與相應的第一列名匹配的匹配

我需要採取一些我選擇說255,並看看它是否符合我的第二列中的任何數字。如果它匹配,我需要返回匹配的日期。

我知道匹配,計數,等等。我似乎無法把它放在一起。我是一個新手也許這有點超出我的能力,但我認爲,如果我學到了一些東西,我會更好。

在問題中有一些部分匹配,但沒有像我想要的那樣詳細。

如果有人有任何教我的例子,我會更加高興。如果你在書中有參考,我會自己做,如果你告訴我的參考。

非常感謝。我在Windows XP SP3環境中使用R 2.13.1。

+3

一些人會很樂意回答,但如果我們有一個[可重現的],它會更容易幫助(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r可重複使用的示例)。懸崖筆記:給我們輸入的結果(head(yourDataHere),20)'開始:) – Chase 2011-12-20 21:32:24

回答

0

你可能想看看subset()。

> x1 <- rnorm(20)*10 
> y1 <- rnorm(20)*5 
> z1 <- cbind(round(abs(x1),0), round(abs(y1),0)) ## just creates 2 columns of data. 
> z1 
     [,1] [,2] 
[1,] 9 1 
[2,] 6 6 
[3,] 3 7 
[4,] 10 0 
[5,] 9 2 
[6,] 7 7 
[7,] 7 10 
[8,] 3 1 
[9,] 6 10 
[10,] 6 5 
[11,] 0 11 
[12,] 5 0 
[13,] 0 8 
[14,] 2 4 
[15,] 1 2 
[16,] 3 3 
[17,] 9 7 
[18,] 12 4 
[19,] 1 1 
[20,] 6 3 
> ss1 <- subset(z1, z1[,2]==2) ## creates subset of 'z1' where column 2 equals 2. 
> ss1 ## shows contents of ss1 
    [,1] [,2] 
[1,] 9 2 
[2,] 1 2 
+0

哇...沉重。我將同時學習。這裏有些重要的價值。謝謝 – futurewalker 2011-12-21 01:27:43

2

熟悉R中的索引將幫助您完成此任務(以及其他許多功能),而無需其他功能。要僅選擇矩陣或數據框中的某些行和列,格式爲x[rows,columns],其中保留爲空的任何一個rowscolumns都會顯示全部。

就你而言,這是我們能做的。首先,讓我們創建一個示例矩陣(注意,「2列向量」實際上是一個矩陣):

x <- cbind(c("12/11/11", "12/10/11", "10/16/11", 
"11/07/11"), c(1, 255, 3, 255)) 

#  [,1]  [,2] 
#[1,] "12/11/11" "1" 
#[2,] "12/10/11" "255" 
#[3,] "10/16/11" "3" 
#[4,] "11/07/11" "255" 

在你行的索引使用邏輯向量,就可以返回只包含特定值的行。舉例來說,這裏的任何行,其中列2 = 255的邏輯矢量:標記TRUE

x[,2] == 255 

#[1] FALSE TRUE FALSE TRUE 

插入這個邏輯載體導入你的行索引將只返回行。

x[x[,2]==255,] 

#  [,1]  [,2] 
#[1,] "12/10/11" "255" 
#[2,] "11/07/11" "255" 

只顯示日期,在索引中指定的列1:

x[x[,2]==255,1] 

#[1] "12/10/11" "11/07/11" 
+0

像下面這樣...我必須學習一些新的東西。謝謝。 – futurewalker 2011-12-21 01:55:44

+1

沒問題。請注意@screechOwl的答案也需要建立索引。一旦掌握了這些指標,我真的無法強調足夠的指標。 – ChadBDot 2011-12-21 02:35:09

+0

一直在練習矢量,你能建議任何書籍等在R索引 – futurewalker 2011-12-21 22:19:30

0

還要考慮使用merge,有您的查找值的列,您在數據幀的日期欄,然後合併這與另一個具有要查找的值的數據框(或您想要查找的一組值)相關聯。默認情況下,它只會返回一個數據框,只有來自兩個組的值匹配,您可以設置參數以保留那些不匹配的參數,並且它們將缺少值以顯示它們不匹配。