1. ホーム
  2. r

[解決済み】x[[i]]でのエラー:レベル2で再帰的インデックス作成に失敗した

2022-02-02 05:27:49

質問

私はRとスタックオーバーフローの初心者です。ネットで検索しましたが、私の質問に対する答えが見つかりませんでした。私はリストから抽出し、リスト内のエントリを置き換えるループを作成したいと思いました。

(x<-list(1:5,NULL))

  rpl<- function(x){
      for(i in x){
        if(x[[i]]==1)
          x[[i]]<-25
      }

  }  

解決方法は?

x<-list(1:5,NULL)

lapply(x, function(el) {
    if(is.null(el)) el else {
        ifelse(el %in% 1, 25, el)
    }
    })

#[[1]]
#[1] 25  2  3  4  5

#[[2]]
#NULL

使用 lapply を使用して、リストを操作したり返したりします。 より良いのは %in% なぜなら == は欠損値で失敗します。