shecode
shecode

Reputation: 1726

R How do I extract first row of each matrix within a list?

Say I have a list called mylist_1 with 2 matrices:

mylist_1

$region_1           
users   50  20  30
revenue 10000   3500    4000

$red            
users   20  20  60
revenue 5000    4000    10000

How do I extract the first row of each matrix into its own matrix?

i.e. output (first column here are rownames):

region_1    50  20  30
region_2    20  20  60

or the second row of each matrix?

region_1    10000   3500    4000
region_2    5000    4000    10000

Is there a way to reference the list/matrices to do this?

Thanks

Upvotes: 5

Views: 9299

Answers (2)

akrun
akrun

Reputation: 887951

Or,

lapply(mylist_1, `[`,1,)
lapply(mylist_1, `[`,2,)

Upvotes: 12

talat
talat

Reputation: 70336

To extract the first row per matrix you can use:

lapply(mylist1, head, 1)

Or, if you want to rbind them:

do.call(rbind, lapply(lst, head, 1))

Or for (only) the second row per matrix:

lapply(lst, function(x) x[2,])

Upvotes: 7

Related Questions