gpt4 book ai didi

r - 按 R 中列节点的值拆分矩阵中的矩阵

转载 作者:行者123 更新时间:2023-12-02 05:06:33 25 4
gpt4 key购买 nike

我在 R 中有一个这样的矩阵:

          [,1]        [,2]        [,3]         [,4]            [,5]   
19992 -33.54971 23.35746 0.0000000 2.107680e+01 19980219
19993 -33.54203 23.40079 0.0000000 2.107696e+01 19980219
19994 -33.53453 23.44445 0.0000000 2.107713e+01 19980219
19995 -33.52719 23.48840 0.0000000 2.107730e+01 19980219
19996 -33.51965 23.53200 0.0000000 2.107746e+01 19980219
19997 -33.51183 23.57565 0.0000000 2.107763e+01 19980219
19998 -33.50446 23.61958 0.0000000 2.107780e+01 19980219
19999 -33.49678 23.66313 0.0000000 2.107796e+01 19980219

它实际上要大得多(2.000.000 行),但我认为这个示例可以解决我的问题。

我想提取所有值介于例如之间的行。 -33.52... 和 -33.55... 在第一列中并创建这些提取行的新矩阵。

输出矩阵将是例如:

19992    -33.54971    23.35746    0.0000000    2.107680e+01    19980219
19993 -33.54203 23.40079 0.0000000 2.107696e+01 19980219
19994 -33.53453 23.44445 0.0000000 2.107713e+01 19980219
19995 -33.52719 23.48840 0.0000000 2.107730e+01 19980219

一些提示会很棒!

最佳答案

使用逻辑比较,你可以像这样使用它来子集:

set.seed(1096)
m <- matrix( runif(36,-30,30) , ncol = 6 )
m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -10.8645147 12.701539 11.830714 12.027012 13.007876 -27.569211
[2,] -27.7127809 -20.907217 26.667036 -16.142388 20.287297 12.283898
[3,] 8.1607388 13.326040 -8.937501 2.541782 2.705917 18.490514
[4,] 14.0729963 4.522238 13.869731 13.708621 -22.996189 29.276250
[5,] -0.3717591 18.057403 18.940814 3.430272 -23.460082 -27.296111
[6,] -14.0079398 -7.932984 24.836415 -20.442637 20.630987 8.138304

m[ m[,1] > -15 & m[,1] < -10 , ]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -10.86451 12.701539 11.83071 12.02701 13.00788 -27.569211
[2,] -14.00794 -7.932984 24.83641 -20.44264 20.63099 8.138304

我们将条件子集放在 [ 运算符的行位置(注意 , 在上面最后一个命令中的条件之后,我们后面没有任何内容告诉 R 返回所有列)。

我们将条件添加到子集上,使用 & 运算符将条件链接在一起,因此在这种情况下,我们只需要第一列中具有值的行 (m[,1] ) 大于 -15 & 小于 -10.

你可能会说

m[ (some condition) , c(1,2) ]

如果 (some condition) 是 R 可以计算为 TRUEFALSE 的表达式,它将仅返回计算为。这次我们请求第 1 列和第 2 列(我们也可以说 1:2 )

关于r - 按 R 中列节点的值拆分矩阵中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com