2014-11-21 67 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])