R:比较列表中的每个值是否为其他值
我不熟悉R。我有一个矩阵combine,我想知道某列的每个值是否大于0.05。我该怎么做?为什么第二行代码不起作用?9.65830710944783e-05小于0.05,但其逻辑值为真R:比较列表中的每个值是否为其他值,r,R,我不熟悉R。我有一个矩阵combine,我想知道某列的每个值是否大于0.05。我该怎么做?为什么第二行代码不起作用?9.65830710944783e-05小于0.05,但其逻辑值为真 > head(combine[,"rollingUSGG5Y_significance"], 30) [1] NA NA NA NA
> head(combine[,"rollingUSGG5Y_significance"], 30)
[1] NA NA NA NA
[5] NA NA NA NA
[9] NA "0.000340501400361469" NA NA
[13] NA NA "0.0180102687712968" NA
[17] NA NA NA "0.00392196741941212"
[21] NA NA NA NA
[25] "9.65830710944783e-05" NA NA NA
[29] NA "3.23767237214935e-07"
> head(combine[,"rollingUSGG5Y_significance"] > 0.05,30)
[1] NA NA NA NA NA NA NA NA NA FALSE NA NA NA NA FALSE NA NA NA
[19] NA FALSE NA NA NA NA TRUE NA NA NA NA TRUE
当与数值进行比较时,字符列的计算结果将与数值列的计算结果不同。正如@onyanbu在评论中指出的,请确保您将数字作为数字进行评估 下面演示如何在每种情况下获得不同的布尔值:
set.seed(123)
n首先确保它们是数字的:head(如.numeric(组合[,“rollingugg5y\u重要性])>0.05,30)
有效。非常感谢。这是一个很好的答案!!另外,您可能还应该补充一点,数字通常被隐式强制为字符。例如3==“3”
应返回TRUE,而3>“2.5”为TRUE,但3e-1>“3”应返回FALSE,但由于读取的字符为3e-1而不是0.3,因此返回TRUE。