访问表中的项目有什么问题?

时间:2015-09-03 16:10:54

标签: r

data <- c( 1, 2, 4, 5, 6, 1, 2, 2, 4, 5)
data_table <- table(data)
class(data_table)
# [1] "table"

data_table
# data
# 1 2 4 5 6 
# 2 3 2 2 1 

我认为数字行(1 2 3 4 5 6)是每列的名称。 第二行数字是数字。

现在我不知道如何从这个表中提取第二行数字。 例如,

data_table[1]
# 1 
# 2 

class(table_data[1])
# [1] "integer"

现在我想在这个表的第一个元素中得到数字2。我尝试了几种方法,都失败了。我是R语言的初学者。谁能解释一下方法和原因?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

“table”对象不是原子向量。原子向量不具有名称以外的属性,而表具有维度和dimnames

> attributes(data_table)
$dim
[1] 5

$dimnames
$dimnames$data
[1] "1" "2" "4" "5" "6"


$class
[1] "table"

表对象的索引非常类似于R数组。

> new_arr <- array(NA, 5)
> dim(new_arr)
[1] 5
> attributes(new_arr)
$dim
[1] 5

除非使用drop = FALSE,否则当索引时dim属性将“关闭”,当使用它时,与R'数组的对应关系变得更加明显:

> class( data_table[2])
[1] "integer"
> class( data_table[2,drop=FALSE])
[1] "array"