与此处相同的问题:R subset functions, including '[' not working on middle range of large dataframe/matrix,但有人在我今天早上有机会尝试答案之前将该问题标记为重复。具体来说,我不能在我的变量中访问.937-.975,无论是单行还是for循环。使用'[':
来说明问题在'['中遇到同样的问题,其中大部分矩阵,.937和.975之间没有得到处理:
> for3d.mat <- matrix(ncol=3,nrow=0)
> for(i in seq(.8,1,by=.001)){for(j in seq(.8,1,by=.001)){iter.mat <- matrix(ncol=3,c(i,j,length(MergedBH[MergedBH$V4.x ==i & MergedBH$V4.y ==j,]$V4.x)));for3d.mat <- rbind(for3d.mat,iter.mat)}}
> for3d.mat[for3d.mat[,1] == .975 & for3d.mat[,2] == .966,]
[,1] [,2] [,3]
能够在大多数矩阵上使用'['或子集,但是对于原始数据帧或者无法通过子集化方法访问的for3d.mat,只有一个特定范围,例如:
> for3d.mat[for3d.mat[,1] == .976 & for3d.mat[,2] == .937,]
[1] 0.976 0.937 NA
> for3d.mat[for3d.mat[,1] == .975 & for3d.mat[,2] == .937,]
[,1] [,2] [,3]
编辑以显示第一个答案是正确的,它是FAQ 7.31问题:
> unique(for3d.mat[,1] - 0.976, digits=16)
[1] -5.600000e-02 -5.500000e-02 -5.400000e-02 -5.300000e-02 -5.200000e-02
[6] -5.100000e-02 -5.000000e-02 -4.900000e-02 -4.800000e-02 -4.700000e-02
[11] -4.600000e-02 -4.500000e-02 -4.400000e-02 -4.300000e-02 -4.200000e-02
[16] -4.100000e-02 -4.000000e-02 -3.900000e-02 -3.800000e-02 -3.700000e-02
[21] -3.600000e-02 -3.500000e-02 -3.400000e-02 -3.300000e-02 -3.200000e-02
[26] -3.100000e-02 -3.000000e-02 -2.900000e-02 -2.800000e-02 -2.700000e-02
[31] -2.600000e-02 -2.500000e-02 -2.400000e-02 -2.300000e-02 -2.200000e-02
[36] -2.100000e-02 -2.000000e-02 -1.900000e-02 -1.800000e-02 -1.700000e-02
[41] -1.600000e-02 -1.500000e-02 -1.400000e-02 -1.300000e-02 -1.200000e-02
[46] -1.100000e-02 -1.000000e-02 -9.000000e-03 -8.000000e-03 -7.000000e-03
[51] -6.000000e-03 -5.000000e-03 -4.000000e-03 -3.000000e-03 -2.000000e-03
[56] -1.000000e-03 1.110223e-16 1.000000e-03 2.000000e-03 3.000000e-03
[61] 4.000000e-03 5.000000e-03 6.000000e-03 7.000000e-03 8.000000e-03
[66] 9.000000e-03 1.000000e-02 1.100000e-02 1.200000e-02 1.300000e-02
[71] 1.400000e-02
1.11e-16对应的值应为.976
答案 0 :(得分:2)
我希望这是FAQ 7.31。
查看结果:
for3d.mat[,1] == 0.976
for3d.mat[,2] == 0.937
print(for3d.mat[,1] - 0.976, digits=16)
print(for3d.mat[,2] - 0.937, digits=16)
然后阅读常见问题解答。
我会自己运行上面的确认,但我们没有MergedBH
因此无法再现您的示例。