r - R 因“未实现这些类型的比较”而失败
问题描述
domainA <-read.csv("/Users/keke/Desktop/Data.and.Domains/Domains FormA.csv",header=TRUE, sep=",")
domainB <-read.csv("/Users/keke/Desktop/Data.and.Domains/Domains FormB.csv",header=TRUE, sep=",")
formA <-read.csv("/Users/keke/Desktop/Data.and.Domains/FormA.csv",header=FALSE, sep=",")
formB <-read.csv("/Users/keke/Desktop/Data.and.Domains/FormB.csv",header=FALSE, sep=",")
formA <- t(formA)
formB <- t(formB)
formA <- as.data.frame(formA)
formB <- as.data.frame(formB)
formA <- formA[-1,]
formB <- formB[-1,]
students.a <- vector("character")
for(i in 1:50) {
students.a[i] <-2*i-1
}
students.b <- vector("character")
for(i in 1:50){
if(i==32) next
students.b[i] <- 2*i
}
students.b <- students.b[(!is.na(students.b))]
students.a <- c("AKey", students.a)
students.b <- c("BKey", students.b)
colnames(formA) <- students.a
colnames(formB) <- students.b
TestA<- cbind(formA,domainA)
TestB<- cbind(formB,domainB)
ID <- c(students.a[2:51], students.b[2:50])
EXAM <- c(rep("A", 50), rep("B", 49))
stID <-c(students.A[2:51], students.B[2:50])
Exam <- c(rep("A",50),rep("B",49))
DetA<- formA[,2:51]==formA$Akey
hitormissA <- formA[,2:51]==formA$AKey
hitormissA <- apply(hitormissA, 2, as.numeric)
scoreA <- apply(hitormissA, 2, sum)
percentageA <- apply(hitormissA, 2, mean)
percentageA <- percentageA*100
代码不是从 hitormiss A 运行的。错误说
Incompatible methods ("Ops.data.frame", "Ops.factor") for "=="Error in formA[, 2:51] == formA$AKey :
comparison of these types is not implemented
解决方案
据我了解,您正在尝试通过逻辑运算符“==”进行检查,如果
formA[,2:51]
“完全等于”formA$AKey
but class(formA[,2:51])
是一个data.frame
,whileclass(formA$AKey)
是一个factor
!
因此它们在 R 中永远不可能相等,因此您会收到错误消息。
通过以下方式检查:
class(formA[,2:51]) == class(formA$AKey)
我建议您尝试将formA[,2:51]
和formA$AKey
带到同一个班级,然后才使用逻辑运算符。
推荐阅读
- c# - 如果我更改任何内容,我可以更快地读取 CSV 文件吗?readlines 是最好的方法吗?
- powershell - 如何使用 power shell 命令获取 hyper-v 主机详细描述?
- scala - Spark结构化流:获取1分钟窗口聚合的第二行
- excel - 在列中满足值后发送电子邮件
- javascript - 如何自动检测 DOM 中的元素以填充 const 数组?
- visual-studio-code - 每次在 VSCode 中启动 RLS 时出现“重复的 RLS 配置”
- python - 对 Pandas df 中的列组合进行详尽搜索
- mysql - MariaDB 查询使用 IN 和 LIMIT by row
- python - PyCharm 社区版
- oozie - OOZIE workflow.xml 没有函数映射到名称 coord:nominalTime