我正在學習使用dplyr pkg。使用R dplyr拋出錯誤
library(dplyr)
的玩具數據集:
d <- expand.grid("id"=1:3,"x1"=10:12,"x2"=(20:22))
後來我可以通過列需要循環,我的真實數據有30K行,70列
i <- 2
在這裏,我希望可以用通用變量名稱
my.variable <- names(d[i])
my.variable
函數到每個組歸一化爲範圍0-1
norm <- function(x) (x - min(x,na.rm = TRUE))/(max(x,na.rm = TRUE)-min(x,na.rm = TRUE))
df.out <- d %>% group_by(id) %>% mutate(x.norm = norm(get(my.variable, envir = as.environment(d))))
引發錯誤:
Error: incompatible size (%d), expecting %d (the group size) or 1
理解爲對錯誤的原因任何幫助。此外,這是做這種正常化任務的可行方式嗎?
謝謝Dieter!一個極好的和經濟的解決方案!我已經給您的解決方案進行了一些33K行和73列的壓力測試:在老化的筆記本電腦上處理不到2秒鐘。超出了我所有的期望。 –
讚美是哈德利。以前的'ddplyr'是一個很好的概念,但速度很慢。所以'dplyr'中的重啓是值得的。 –