我可能會丟失在Stata一些優雅的方式來獲得這個例子,這與電氣部件做,每月觀察故障等獲取頻率計數元素的子集在列
clear
input str3 (PartID Type FailType)
ABD A 4
BBB S 0
ABD A 3
ABD A 4
ABC A 2
BBB A 0
ABD B 1
ABC B 7
BBB C 1
BBB D 0
end
我想分組(bysort
)每個PartID
並且記錄每個PartID
類型內的FailType
的最高頻率。領帶可以任意折斷,最好可以挑選下面的領帶。
我看着groups
等,但不知道如何剝離結果集中的某些元素。所以這對我來說是一個主要問題。如果你執行一個查詢,你如何只選擇你想要的下一個計算的元素?例如n(0)是計數,n(1)是平均值等。我能夠使用contract
,bysort
等,並創建一個單獨的數據集,然後merge
d用一個額外的列返回到主集中。必須使用gen
或egen
這樣簡單,這樣就不需要創建額外的數據集。
The expected results here will be:
PartID Freq
ABD 4 #(4 occurs twice)
ABC 2 #(tie broken with minimum)
BBB 0 #(0 occurs 3 times)
請讓我知道我可以摘掉,我從一個結果集需要(可從重複的報告,tab
等)
第二部分具體內容 - 澄清:也許我應該澄清並將問題分爲兩部分。例如,如果我在運行代碼後發出後續命令:tabdisp Type, c(Freq)
。它可以打印出一張漂亮的桌子。然後,我可以使用該(派生)表以編程方式執行更多計算?
例如獲取表格的第一行。
Table. ----------------------
Type| Freq ----------+-----------
A | -1
B | -1
C | -1
D | -3
S | -3
---------------------- –
我修剪了這個問題,專注於精確的代碼而不是推論或個人評論,並刪除對R的引用:你沒有顯示R代碼,也沒有要求精確的R問題。這仍然很難遵循(例如,有什麼意思與你的問題有關)。請注意,變量是您在此調用列的Stata術語。 –
在你的第二部分中,我對你的例子沒什麼意義,因爲(1)'Freq'是用'PartID FailType'來定義的,所以爲什麼要用'Type'來表達它? (2)'Freq'在我的代碼末尾並不是負數,所以你正在做一些不同的事情,但沒有向我們展示你的代碼。作爲一個普遍的問題,「tabdisp」是顯示已經計算結果的序列的結尾;它對於以後的計算沒有額外的價值。 –