我需要提取最小值和最大值之間的觀察值數。我知道我可以對數據進行子集化,創建一個新的DF,然後計算長度,但是對較少涉及的過程感興趣。例如,我有和想要從最小到最大的觀察次數,R:最小值和最大值之間的obs數
ddd <- mydf[,list(minVar1 = min(Var1, na.rm=TRUE),
maxVar1 = max(Var1, na.rm=TRUE)), by="Group"]
是否有沒有中間DF的直接方法?謝謝。
編輯:我想這比原先說過的要複雜一點。對於Group = 1,最小值實際上是2,但是我需要最小索引值低於最大值索引/位置。因此,該範圍爲3到7,長度爲3. Idx變量對Var1的測量指標/位置進行評分。因此,必須首先確定Var1的最大位置,然後確保從Idx中提取的最小位置小於最大位置的位置。
Group Var1 Idx
1 3 4
1 5 5
1 7 6
1 3 7
1 2 8
2 5 12
2 6 13
2 9 14
2 11 15
2 5 16
Group min max length
1 3 7 3
2 5 11 4
看起來你正在使用'data.table'語法。請顯示一些示例和預期輸出。 – akrun
有趣的問題。這裏是一個帶有'mtcars'數據集的基本R解決方案(例如變量'hp'):'length(unique(mtcars [order(mtcars $ hp),「hp」]))' – SabDeM
如果有關係?觀察次數不清楚。 – akrun