2016-01-19 22 views
1
test = data.frame(a=factor(c("A","A","B","B","C","C")), 
        b=c(101,103,50,100,50,60), 
        c=factor(c("John","Mary","John","Mary","John","Mary"))) %>% 
    group_by(c) %>% mutate(d=scale(b)) 
View(test) 

爲什麼這個產生錯誤錯誤FUN(X [[I]],...): 變暗[產物3]不匹配對象的長度[6]誤差GROUP_BY,變異,和縮放一起

我正在嘗試在c的每個級別(即「每個主題」)內對b的z值進行評分。

+1

我得到錯誤使用'dplyr_0.4.3'。該語句運行時沒有'View()'調用,'test'將打印到屏幕上。然而'str(test)'也給出了相同的錯誤 – tospig

+0

它在R studio中不適用於我,但它在我的基本R控制檯中工作 – MLavoie

+0

'str(test $ d)'產生相同的錯誤並且'str(test [,1:3])'不。此外,'test $ d'是數據集中的'矩陣',這可能是導致問題的原因。 – brittenb

回答

4

您在attributes列內dR不知道如何查看這些。使用as.numeric()包裝scale可以刪除這些屬性。

library(dplyr) 
test = data.frame(a=factor(c("A","A","B","B","C","C")), 
            b=c(101,103,50,100,50,60), 
            c=factor(c("John","Mary","John","Mary","John","Mary"))) %>% 
    group_by(c) %>% 
    mutate(d = as.numeric(scale(b))) 

View(test) 
1

以下工作:

test = data.frame(a=factor(c("A","A","B","B","C","C")), 
       b=c(101,103,50,100,50,60), 
      c=factor(c("John","Mary","John","Mary","John","Mary"))) %>% 
    group_by(c) %>% mutate(d=scale(b)[, 1]) 
View(test) 

這是因爲scales返回一個矩陣,因爲它的值,以及上述取該矩陣的第一列。