从表格对象中提取一行

26

我想知道如何在R中获取表格中特定的一行。例如:

> a <- c(13,13, 
    14,14,14,14,14,14,
    15,15,15,15,15,15,
    16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
    17,17,17,17,17,17,17,
    18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
    19,19,19,19,19,19,19,19,19,19,19,
    20,20,20,20,20,20,20,20,20,
    21,21,21,21,21,21,21,21,21,21,21,
    22,22,22,22,22,22,22,22,22,
    23,23,23,24,25,25,27)
> table(a)
a
13 14 15 16 17 18 19 20 21 22 23 24 25 27 
2  6  6 15  7 17 11  9 11  9  3  1  2  1 

我该如何提取表格的最后一行?

1个回答

52

str()函数允许您查询对象的结构。

str(table(a))
# 'table' int [1:14(1d)] 2 6 6 15 7 17 11 9 11 9 ...
# - attr(*, "dimnames")=List of 1
#  ..$ a: chr [1:14] "13" "14" "15" "16" ...

你的table对象类似于向量(只不过它具有一些额外的标记/属性)。关键是,你可以以通常的方式访问元素:

R> b = table(a)
##To get the numerical values
R> as.vector(b)
 [1]  2  6  6 15  7 17 11  9 11  9  3  1  2  1
##To get the names
R> names(b)
 [1] "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "27"

此外,我们可以使用标准的子集规则。

##Get the last element in the named vector
R> b[length(b)]
27 
 1 
R> names(b)[length(b)]
[1] "27"

1
还可以查看 ?table 下的示例。根据因子数量,可能会有多行数据,并且你需要用 b[dim(b)[1],] 选择最后一行数据。 - Carl Witthoft
好的,这不仅仅是一个命名向量,因为像qplot这样的函数不会将其视为向量,不幸的是。 - JelenaČuklina
1
@Jelena-bioinf 您是正确的。我已经更新了答案。 - csgillespie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接