我有一個問題,並希望你們中的一些人可以幫助我。問題是這樣的:對於包含長度爲n的向量y和具有k個不同級別的因子f的給定數據幀,我想基於f給數據幀分配長度爲k的新變量z。聚合反轉/按?
例子:
df <- data.frame(y=rnorm(12), f=rep(1:3, length.out=12))
z <- c(-1,0,5)
注意,我真正z
已經構建對應於獨特的因子水平,這也就是爲什麼length(z) = length(unique(df$f)
。我現在想要創建一個長度爲n = 12的矢量,其中包含對應於因子級別f
的值z
。 (注:我真正的因子值沒有在上面的例子中有序像,所以只是重複矢量z
將無法正常工作),
現在,一個顯而易見的解決辦法是創建數據幀外的載體f
,合併它與z
然後使用merge
。例如,
newdf <- data.frame(z=z, f=c(1,2,3))
df <- merge(df, newdf, by="f")
不過,我需要重複這個過程幾千倍,這merge
- 溶液似乎是對微生物大炮射擊。因此,我的問題是:這樣做幾乎肯定是一種更簡單,更有效的方式,但我不知道如何。任何人都可以將我指向正確的方向嗎?我正在尋找類似aggregate
或by
的「反向」。
您可能想用語言標籤來編輯該問題,以增加用戶能夠回覆該問題的機會。 – Dukeling