首页 > 解决方案 > 从R中的表dimname获取行

问题描述

我有下表:

> some.table
          Week
Person     17 18 19 20 21 22 23 24 25 26 27 28 29 30
  Anna      0  1  0  1  1  1  0  0  2  1  1  0  0  2
  Cloe      0  1  1  1  1  1  0  0  0  0  0  1  2  0
  Heather   1  0  0  2  1  1  0  1  1  1  2  1  2  0
  Samantha  0  0  3  1  1  2  1  0  0  0  0  0  0  0
> str(some.table)
 'table' int [1:6, 1:14] 0 0 1 0 0 1 1 1 0 0 ...
 - attr(*, "dimnames")=List of 2
  ..$ Person: chr [1:6] "Anna" "Cloe" "Heather" "Samantha"
  ..$ Week  : chr [1:14] "17" "18" "19" "20" ...

如何按人名从该表中提取一行?

例如,some.table$Person["Cloe"]我想获得一个 vector c(0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0)

标签: r

解决方案


这应该有效,注意逗号:

some.table["Cloe", ]

这是一个可重现的示例:

x <- with(mtcars, table(cyl, gear))
x
#    gear
# cyl  3  4  5
#   4  1  8  2
#   6  2  4  1
#   8 12  0  2

x[ "4", ]
# 3 4 5 
# 1 8 2 

我们可以使用unname删除列名:

unname(x[ "4", ])
# [1] 1 8 2

推荐阅读