找出最大數我有這樣一個列表:通過命令從列表
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'命令完成嗎?
找出最大數我有這樣一個列表:通過命令從列表
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
'by'對由分類變量定義的子集執行操作。在這個問題定義中我看不到這樣的變量。具有一組iregulat長度的列表對於'by'函數來說是一個特別不合適的參數。 – 2012-07-16 04:52:59