0
我有一個數據幀m與正常變換函數:自動化中的R在多個列
>m
id w y z
1 2 5 8
2 18 5 98
3 1 25 5
4 52 25 8
5 5 5 4
6 3 3 5
下面是用於正常地轉化變量一般功能,我需要適用於列W,Y,Z 。
y<-qnorm((rank(x,na.last="keep")-0.5)/sum(!is.na(x))
例如,如果我想在「列W」運行這個函數來獲得附加到數據幀「M」,則輸出列:
m$w_n<-qnorm((rank(m$w,na.last="keep")-0.5)/sum(!is.na(m$w))
有人可以幫我自動完成這一運行在數據框m中的多列上? 理想情況下,我想用下面列的輸出數據幀:
id w y z w_n y_n z_n
注意這是一個樣本數據幀,一個我大得多,我有更多的字母列上運行比其他此功能w,y,z。 謝謝!
創建新變量與'_n'後綴的方式繁瑣。如果我是你,我會創建一個全新的data.frame,其中包含相同的變量名稱,即停在'sapply(df [-1],transCols)'在matt_k的答案中。這就是你要給這個新數據框架的名稱,它將捕捉它變量的性質/含義,例如, '轉化.vars < - sapply(...)'。 – flodel