矢量比较问题与csv文件中的数据

时间:2015-01-28 00:58:32

标签: r

我想比较下面的两个向量。我从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)

1 个答案:

答案 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

你说它在硬编码时有效,你检查过数据结构是否相同?