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语言的初学者。谁能解释一下方法和原因?任何帮助表示赞赏。
答案 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"