2
これは初心者の質問ですが、配列のリストであるデータセットの適用関数を理解する上で問題があります。配列リストの適用関数
これは私が持っているデータの一例であり、私は何をしようとしています:
> dataset1=array(data1,dim=c(2,10,5))
> dataset2=array(data2,dim=c(2,10,5))
> dataset3=array(data2,dim=c(2,10,5))
> datasets=list(data1=dataset1,data2=dataset2,data3=dataset3)
> str(datasets)
List of 3
$ data1: num [1:2, 1:10, 1:5] 0.101 1.192 0.154 0.911 1.889 ...
$ data2: num [1:2, 1:10, 1:5] 2.84 1.63 1.78 1.24 1.09 ...
$ data3: num [1:2, 1:10, 1:5] 2.84 1.63 1.78 1.24 1.09 ...
私はすべての値を置き換えたいことは私ができるのかしら1.5
0によってfor (d in 1:3){
for (n in 1:2){
for (i in 1:10){
datasets[[d]][n,i,][datasets[[d]][n,i,]<=1.5]=0
}
}
}
を怒鳴ります私は適用関数の1つを使用しますか?または、このタイプのデータセット(配列のリスト)の場合、またはループメソッドを保持して他のオプションを忘れる必要がありますか?再現性のあるデータで
私は ";"の大ファンではありません。 Rを使っていますが、うまくいきます。だから私はちょうど "ifelse"を使用してこのソリューションを追加します:lapply(datasets、function(x)ifelse(x <1.5、0、x))。 – dickoa
なぜ ";"を使いたくないのですか?それは特定のresaonのためですか? –
これは単なる構文で、セミコロンで1行にすることができます。匿名の関数をレイアウトに入れたほうがはるかに優れていますが、何とか匿名ではないという意味です。 ifelseは素敵な整頓です。 – mdsumner