私はこのようなリストを持っています:
Ll
$a
3.4 5.6 -2.1 -7.8
$b
2.1 6.7
$c
-6.7,0.001,8.9
符号に関係なく、リストのすべての要素の最大数を調べたいと思います。つまり、出力を次のように表示したい:
Ll
$a
-7.8
$b
6.7
$c
8.9
単一のコマンドラインからこれを行う方法はありますか?'by'コマンドを使用して実行できますか?
再現可能なコード/データは常に役立ちます:
L1 <- list(a = c(3.4, 5.6, -2.1, -7.8), b = c(2.1, 6.7), c = c(-6.7, 0.001, 8.9))
lapply
各要素に独自の関数を適用するために使用しwhich.max
、最大値を簡単に見つけます。各要素abs
内のolute値を取得するだけです。
lapply(L1, function(x) x[which.max(abs(x))])
$a
[1] -7.8
$b
[1] 6.7
$c
[1] 8.9
lapply
あなたの友だちです!
例えば。
.list <- list( a = 1:5, b = runif(7), c = -3:1)
lapply(.list, function(x) x[which.max(abs(x))])
## $a
## [1] 5
##
## $b
## [1] 0.9248526
##
## $c
## [1] -3
which.maxはインデックス番号と値を提供しますが、必要な番号だけが必要な場合は、これを試すことができます。
max(sapply(yourlist、max))