gpt4 book ai didi

R 要替换的项目数不是替换长度/结果的倍数,但正确

转载 作者:行者123 更新时间:2023-12-04 08:08:56 26 4
gpt4 key购买 nike

我知道已经有一些关于这个的线索,但是通过那些我无法弄清楚问题可能是什么 - 请原谅我..

我正在尝试运行代码

  for (i in 1:a){
matrix$new_column[i]<-which(matrix[i,1:b-1]==matrix$col_b[i])
}

我正在尝试的是:
对于a行b列的矩阵,在每一行的第2到b-1列中,找到与b列中包含相同值的那个(总是有这样的值)并写出相应的列号进入 *new_column*

我的代码不断抛出错误

Warning in matrix$new_column[i] <- which(matrix[i, : number of items to replace is not a multiple of replacement length



然而,结果是完全正确的。我试过了
  • 首先创建用 0 填充的 *new_column*
  • 将结束索引从 a 更改为 a-1 或 a+1

  • 如上所述,结果是正确的,但是我觉得如果我做的一切正确,我不应该收到警告消息,所以我真的很感激关于如何解决这个问题的任何建议。

    最后,当我想从 2 转到 b-1 时,不要问我为什么选择 1:b-1,我只是看到当我使用 2:b-1 时,它实际上会从第 3 列开始..

    最佳答案

    which()如果有多个匹配项,则可以返回一个向量。例如:

    which((1:12)%%2 == 0) # which are even?

    matrix$col_b[i]独特的?结果可能看起来仍然正确。注意在这种情况下会发生什么:
    x <- 1:2
    x[1] <- 3:4
    x

    另外, 1:b-1没有给你来自 1 的数字至 b - 1但来自 1 的号码至 b , 全减 1 :
    b <- 10
    1:b-1

    您首先需要括号来强制减法: 1:(b - 1) .

    关于R 要替换的项目数不是替换长度/结果的倍数,但正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22099461/

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