2011-10-18 53 views
1

我從包含2列(idDoc,標記)的MySQL表中獲取數據,該表描述文檔具有給定標記。當我使用的數據幀與Plyr for simple group-

ddply(tags,1) 

我的目標是通過ID組標籤,所以說我做以下步驟

> x=c(1,1,2,2) 
> y=c(4,5,6,7) 
> data.frame(x,y) 
    x y 
1 1 4 
2 1 5 
3 2 6 
4 2 7 

我所需的輸出是可能列出的清單(或任何其他結果),將獲得

1 -> c(4,5) 
2 -> c(6,7) 

問候

+0

ddply需要三個參數,而不是兩個。第一個參數是你想要總結的data.frame(看起來像你的案例中的'tags'),第二個參數是你想要總結的變量('idDoc'?),第三個參數是函數或者函數要應用於第二個參數中定義的每個組。 「協會」是什麼意思?看看這個問題的想法如何問一個更好的問題(以獲得更好的答案):http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Chase

+0

第三參數是可選的,我認爲如果沒有指定它只是將元素分組。 – tonicebrian

+0

第三個參數是'可選',只是在它不會生成警告或錯誤(如果省略)的意義上。默認值是'NULL',這意味着如果你忽略它,你就會得到原始數據,保持不變。 – joran

回答

2

這是怎樣的一個鏡頭在黑暗,因爲當你說你想要一個'關聯'時,這並不能真正精確地描述任何特定的R數據結構,所以目前還不清楚你想要輸出的形式。

但是一個基礎R可能性是簡單地使用split

split(tags$tag, tags$idDoc) 

應該返回命名列表,其中名稱來自idDoc和每個列表元素是與idDoc值相關聯的標籤。雖然會有重複。因此,也許這將更好的工作:

tapply(tags$tag,tags$idDoc,FUN = unique) 

應返回的獨特標籤爲每個idDoc列表。

編輯:不需要匿名功能;只需要通過unique)。

+0

是的,我因爲缺乏對R的知識而過度工程 – tonicebrian