首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的Likert分组错误

R中的Likert分组错误
EN

Stack Overflow用户
提问于 2014-11-17 22:28:33
回答 3查看 1.3K关注 0票数 3

我试图在likert函数中使用分组参数,但是增加了错误:

代码语言:javascript
复制
lik <- likert(df2, grouping = df$CAR)

Error in sum(x) : invalid 'type' (character) of argument

以下是我的简单代码:

代码语言:javascript
复制
library(likert)

df<- fread("C:/R/temp/likert_test.csv", select = 1:6)
df <- as.data.frame(df)

col_names <- names(df[1:6])
df[,col_names] <- lapply(df[,col_names] , factor)

str(df)
'data.frame':   19331 obs. of  6 variables:
 $ CAR                                                     : Factor w/ 34 levels "Alfa Romeo","Audi",..: 4 4 4 4 3 3 3 3 4 4 ...
 $ E1.Overall Satisfaction                                 : Factor w/ 10 levels "1","2","3","4",..: 8 8 8 9 9 7 10 8 7 10 ...
 $ E2.Exterior Styling                                     : Factor w/ 10 levels "1","2","3","4",..: 9 8 8 10 8 4 10 8 7 10 ...
 $ E2.Overall Quality                                      : Factor w/ 10 levels "1","2","3","4",..: 8 8 7 10 10 8 10 8 8 10 ...
 $ E2.Interior Styling                                     : Factor w/ 10 levels "1","2","3","4",..: 9 6 9 10 9 8 9 8 7 10 ...
 $ E2.Quality Of Interior And Materials Used Inside The Car: Factor w/ 10 levels "1","2","3","4",..: 7 6 7 10 10 8 10 7 7 10 ...


df2 <- df[,2:5]

lik <- likert(df2, grouping = df$CAR)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-18 02:23:37

此错误消息已在Github (https://github.com/jbryer/likert/issues/26)上报告。解决方案是上传reshape包。

代码语言:javascript
复制
library(likert)
library(reshape)

# I created a sample. Please provide a sample like this from next time.
foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 5),
                  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))

# Convert all columns to factor
foo[1:3] <- lapply(foo[1:3], as.factor)

likert(foo[,c(2:3)], grouping = foo$car)

#   Group         Item  1  2  3  4  5  6  7
#1    BMW satisfaction 20  0 40  0 20  0 20
#2    BMW      quality 20 20  0 40  0 20  0
#3   Ford satisfaction  0 20  0 20 20 20 20
#4   Ford      quality 20  0 60  0  0  0 20
#5 Toyota satisfaction 20 20  0 20 20  0 20
#6 Toyota      quality 20  0  0  0 20 40 20
票数 5
EN

Stack Overflow用户

发布于 2017-02-17 17:17:25

在最新版本的likert上,加载"reshape“并不能解决这个问题。

要使它正常工作,您需要从包中分离出“重组”,并加载reshape2。

代码语言:javascript
复制
detach('package:reshape')
library(reshape2)
票数 1
EN

Stack Overflow用户

发布于 2015-11-19 20:13:27

嗯。我今天也有同样的问题。然而,装货重塑并没有解决我的问题。我在Windows 7上运行R3.2.2。

代码语言:javascript
复制
#rerunning the above code
library(likert)
library(reshape)

# I created a sample. Please provide a sample like this from next time.
foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 5),
                  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))

# Convert all columns to factor
foo[1:3] <- lapply(foo[1:3], as.factor)

likert(foo[,c(2:3)], grouping = foo$car)

#####Results in
> library(likert)
Loading required package: ggplot2
Loading required package: xtable
> library(reshape)
> 
> # I created a sample. Please provide a sample like this from next time.
> foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 5),
+                   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))
> 
> # Convert all columns to factor
> foo[1:3] <- lapply(foo[1:3], as.factor)
> 
> likert(foo[,c(2:3)], grouping = foo$car)

Error in fix.by(by.y, y) : 'by' must specify uniquely valid columns
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26983183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档