问题描述
我正在尝试使用“心理”软件包进行多级因素分析。建议第一步,使用statsBy()函数获得相关数据:
statsBy(study2,组=“ ID”)
但是,它给出了这个“ FUN中的错误(数据[x,,drop = FALSE],...):'x'必须是数字”。
对于数据集,我仅包括一个分组变量“ ID”和其他两个数字变量。我运行了以下代码行以检查变量值是否为数字。
sapply(study2,是数字)
ID v1 V2
假是是
这里是错误跟踪中的代码。但是我不知道这里的“ x”是什么,我注意到在第8和9行中,X在首字母处是小写,在第10行中是小写。 >
* 10。 FUN(data [x,,drop = FALSE],...)
9。 FUN(X [[i]],...)
8。 lapply(X = ans [index],FUN = FUN,...)
7。 tapply(seq_len(728L),列表(Z = C( “5edfa35e60122c277654d35b”, “5ed69fbc0a53140e516ad4ed”, “5d52e8160ebbe900196e252e”, “5efa3da57a38f213146c7352”, “5ef98f3df4d541726b1bcc48”, “5debb7511e806c2a59cad664”, “5c28a4530091e40001ca4d00”, “5872a0d958ca4c00018ce4fe”, “5c87868eddda2d00012add18”,“ 5e80b7427567f07891655e7e“,...
6。 eval(替代(tapply(seq_len(nd),IND,FUNx,简化=简化)),数据)
5。 eval(替代(tapply(seq_len(nd),IND,FUNx,简化=简化)),数据)
4。 结构(eval(替代(tapply(seq_len(nd),IND,FUNx,简化=简化)),数据),调用= match.call(),类=“ by”)
3。 by.data.frame(data,z,colMeans,na.rm = na.rm)
2。 by(data,z,colMeans,na.rm = na.rm)
1。 statsBy(study2,group =“ ID”)*
数据集有728行,而像“ 5edfa35e60122c277654d35b”这样的行则是ID。谁能帮助解释可能出了什么问题?
解决方法
我有同样的错误,唯一的方法是将组变量转换为数字类。
尝试:
study2$ID<-as.numeric(study2$ID)
statsBy(study2,group = "ID")
如果dat$ID
是类字符:
study2$ID<-as.numeric(as.factor(study2$ID))
statsBy(study2,group = "ID")