2
組
所有值我有類似這樣的規模取決於
ID <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3)
p1 <- c(21000, 23400, 26800, 2345, 23464, 34563, 456433, 56543, 34543,3524, 353, 3432, 4542, 6343, 4534)
p2 <- c(234235, 2342342, 32, 23432, 23423, 2342342, 34, 2343, 23434, 23434, 34, 234, 2343, 34, 5)
my.df <- data.frame(ID, p1, p2)
一個數據幀現在我想縮放P1的值,並根據他們的ID P2 。因此,不會像使用tapply()函數那樣對整列進行縮放,而是對ID 1的所有值進行一次縮放,然後對ID 2的所有值進行一次縮放等。對於p2的縮放也是如此。新的數據框應該包含縮放值。
我已經嘗試過
df_scaled <- ddply(my.df, my.df$ID, scale(my.df$p1))
,但得到的錯誤信息
.fun is not a function.
感謝您的幫助!
或更多通用'my.df%>%group_by(ID)%>%mutate_at(vars(matches('p')),funs(scale))' – Sotos
謝謝。它適用於我以這裏作爲示例提供的數據框,但使用真實的數據框,我得到了錯誤:「scaled_data < - predictortable_panel%>%group_by(predictortable_panel $ ID)%> mutate(predictortable_panel $ p1 = 「---任何想法爲什麼它不會等號? – GNee
你不應該在'dplyr'函數內重複數據幀的名稱(即移除'predictortable_panel $');'mutate(p1 = .. .'等應該可以工作。 – mpjdem