R如何提取列表中每个矩阵的第一行?

she*_*ode 5 element r list matrix

假设我有一个名为mylist_1的列表,其中包含2个矩阵:

mylist_1

$region_1           
users   50  20  30
revenue 10000   3500    4000

$red            
users   20  20  60
revenue 5000    4000    10000
Run Code Online (Sandbox Code Playgroud)

如何将每个矩阵的第一行提取到自己的矩阵中?

即输出(这里的第一列是rownames):

region_1    50  20  30
region_2    20  20  60
Run Code Online (Sandbox Code Playgroud)

或每个矩阵的第二行?

region_1    10000   3500    4000
region_2    5000    4000    10000
Run Code Online (Sandbox Code Playgroud)

有没有办法引用列表/矩阵来做到这一点?

谢谢

akr*_*run 10

要么,

lapply(mylist_1, `[`,1,)
lapply(mylist_1, `[`,2,)
Run Code Online (Sandbox Code Playgroud)


tal*_*lat 6

要提取每个矩阵的第一行,您可以使用:

lapply(mylist1, head, 1)
Run Code Online (Sandbox Code Playgroud)

或者,如果你想要rbind他们:

do.call(rbind, lapply(lst, head, 1))
Run Code Online (Sandbox Code Playgroud)

或者(仅)每个矩阵的第二行:

lapply(lst, function(x) x[2,])
Run Code Online (Sandbox Code Playgroud)

  • 或者`t(sapply(mylist_1,"[",1,TRUE))`和`t(sapply(mylist_1,"[",2,TRUE)) (2认同)