我想比较下面的两个向量。我从csv文件中提取的值虽然没有给出正确的答案。如果我尝试使用两个硬编码矢量,它可以很好地工作。为什么呢?
代码:
dataIn=read.csv("MY FILE HERE"sep=",",header=TRUE)
fromCSV<-c(dataIn[2:2,24:27]) #values: 1,1,2,2
inputInts<-c(1,2,2,1)
which(!mapply(identical,fromCSV,inputInts))# I expected: 1,2 as output
结果:
title1 title2 title3 title4
1 2 3 4
我的数据集比这个要大很多,为简单起见,我将其减少到4。我的最终目标是获得两个向量之间完全匹配的值的数量(答案2)
答案 0 :(得分:0)
x=1:5
y=c(1,2,3,4,4)
x
[1] 1 2 3 4 5
y
[1] 1 2 3 4 4
x==y
[1] TRUE TRUE TRUE TRUE FALSE
sum(x==y)
[1] 4
使用“==”进行比较会返回一个true或false的布尔值,然后你可以将它们相加,任何TRUE将= 1,False将= 0
这是因为sum是一个数字函数,它将布尔数据转换为数字,即
as.numeric(x==y)
[1] 1 1 1 1 0
你说它在硬编码时有效,你检查过数据结构是否相同?