2014-11-21 65 views
0

我最近問了一個關於使用likert包進行分組的問題,以便可視化我的數據。我得到的答案在我的示例數據集上工作得很好。喜歡在R中編組的問題

鏈接:likert grouping question 這裏是解決方案:

foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 10), 
        satisfaction = c(1,3,4,7,7,6,2,3,5,5,5,2,4,1,7), 
        quality = c(1,1,3,5,4,3,6,4,3,6,6,1,7,2,7), 
        loyalty = c(1,1,3,5,4,3,9,4,3,10,6,1,7,2,8)) 



foo[2:4] <- lapply(foo[2:4], factor, levels=1:10) 
likt <- likert(foo[,c(2:4)], grouping = foo$car) 
plot(likt) 

然而,當我想這對我的數據集我得到一個錯誤信息,我無法理解:

library(reshape) 
library(likert) 


setwd("C:/mypath") 
df<- fread("myfile.csv", select = 1:9) 
df <- as.data.frame(df) 



#reduce the colnames length 
names(df) <- sub("^(.+[:])([^.]+)$", "\\2", names(df)) 

col_names <- names(df[1:9]) 
df[,col_names] <- lapply(df[,col_names] , factor, levels = 1:10) 
str(df) 

df[2:9] <- lapply(df[2:9], factor, levels=1:10) 
lik2 <- likert(df[,c(2:9)], grouping = df$Make) 
plot(lik2) 

錯誤消息:

Error in `$<-.data.frame`(`*tmp*`, "low", value = c(NA_real_, NA_real_, : 
    replacement has 8 rows, data has 0 

任何想法?

回答

0

發現菜鳥misstake!

應該在sinnce數值數據中的第二列開始從那裏開始..這麼簡單..

col_names <- names(df[2:9])