gpt4 book ai didi

r - 将 TRUE/FALSE 的矩阵合并为一个

转载 作者:行者123 更新时间:2023-12-02 05:38:04 35 4
gpt4 key购买 nike

如果我有这个矩阵(我将其命名为数据):

     [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9]
[1,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
[2,] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE
[3,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[4,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
[5,] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE
[6,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[7,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE
[8,] FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE
[9,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

我想像这样将这些列组合成一个列:(行中的一个 TRUE 等于 TRUE)

      [,1]   
[1,] TRUE
[2,] TRUE
[3,] FALSE
[4,] TRUE
[5,] TRUE
[6,] FALSE
[7,] TRUE
[8,] TRUE
[9,] FALSE

我知道我可以做类似的事情(使用 |):

  data2[1:9,1]<-data[,1]|data[,2]|data[,3]|data[,4]…

data2 将包含一个由不同列组合而成的列。但如果我有很多列(例如 ncol=100),这不是一个好方法

我想有一些简单的方法可以做到这一点?

谢谢

最佳答案

这是另一个利用 R 如何在逻辑和数字之间转换的答案:

当从逻辑值变为数字值时,FALSE 变为 0TRUE 变为 1 所以 rowSums 为您提供每行 TRUE 的数量:

rowSums(data)
# [1] 3 3 0 3 3 0 3 3 0

当从数字变为逻辑时,0 变为 FALSE,其他任何东西都为 TRUE,因此您可以提供 的输出rowSumsas.logical,它将指示一行是否至少有一个 TRUE:

as.logical(rowSums(data))
# [1] TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE FALSE

虽然我喜欢 Tyler 的回答,它可能效率较低(有待证明)但我发现它更直观。

关于r - 将 TRUE/FALSE 的矩阵合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818295/

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