从R中的表中提取元素

时间:2016-08-26 23:44:00

标签: r extract

我已经在网上看了两个多小时寻求帮助,并且"玩了#34;有各种参数,似乎无法弄清楚这一点。我有一个数据库,hlc,包括名为" loc。"的名义变量。该变量是一个数字代码,其中每个代码都描述了大学的位置,例如" rural"或者"小城市。"我需要计算每个类别。

我创建了一个表:

table(hlc$loc)

-3 11 12 13 21 22 23 31 32 33 41 42 43
 0  9 12 27 14  3  5  1 17 39 39 10  2 

然后我将该表放入变量:

loc <- table(hlc$loc)

我可以得到这样的任何一个元素:

loc[1]
-3 
 0 

我想要做的是单独获取每个元素,例如&#34; -3&#34;和&#34; 0&#34;为loc[1]。我试过这个,但没有成功:

loc[1,1]
Error in `[.default`(loc, 1, 1) : incorrect number of dimensions

似乎loc表是一个列表,但该列表中的每个元素都以某种方式链接到两个值,bin号和该bin的实例数。如何从表中提取每个单独的值:bin编号和该bin的计数?

2 个答案:

答案 0 :(得分:3)

您可以像访问它一样访问它:

names(loc[2])
11

loc[[2]]
9

答案 1 :(得分:2)

其他答案已经告诉您如何访问所需的值。但值得添加一些解释,以便您也了解正在发生的事情。

当你打印loc时,看起来你会得到两行数字。但这是误导。顶行实际上是一个提供每个元素名称的属性,它由字符串而不是数字组成。我们可以使用str更清楚地查看结构:

set.seed(123)
x=sample(c(-3,1,4,5,7,11),50,T)
loc=table(x)
str(loc)
# 'table' int [1:6(1d)] 8 9 8 7 7 11
# - attr(*, "dimnames")=List of 1
#  ..$ x: chr [1:6] "-3" "1" "4" "5" ...

因为loc是一个命名向量,我们可以使用这些名称来访问元素。但有点小心。请注意,按索引位置及其名称引用元素会产生不同的结果

loc[1]
#-3 
# 8 

loc["1"]
#1 
#9