在对data.frame进行子集化时解释负指数

时间:2014-01-18 21:00:09

标签: r indexing dataframe matrix-indexing

我对R很新,有时会遇到代码。我遇到了以下代码之一。 -7在下面的代码中的含义是什么?

round(cor(longley[,-7]),3)

我理解: 四舍五入, longley as data.frame, 3:舍入的数字,但不是-7。

2 个答案:

答案 0 :(得分:13)

在上下文[, -7]中,它意味着从数据框7中删除longley列(或从7获取除longley之外的所有列)。

这是R 101,您可以阅读一些介绍性材料。例如,这可以在R附带的An Introduction to R手册中尽早介绍,也可以从R网站访问。或者你可以阅读?Extract

这是一个例子

> head(longley)
     GNP.deflator     GNP Unemployed Armed.Forces Population Year Employed
1947         83.0 234.289      235.6        159.0    107.608 1947   60.323
1948         88.5 259.426      232.5        145.6    108.632 1948   61.122
1949         88.2 258.054      368.2        161.6    109.773 1949   60.171
1950         89.5 284.599      335.1        165.0    110.929 1950   61.187
1951         96.2 328.975      209.9        309.9    112.075 1951   63.221
1952         98.1 346.999      193.2        359.4    113.270 1952   63.639
> names(longley)
[1] "GNP.deflator" "GNP"          "Unemployed"   "Armed.Forces" "Population"  
[6] "Year"         "Employed"    
> names(longley)[7]
[1] "Employed"
> head(longley[, -7])
     GNP.deflator     GNP Unemployed Armed.Forces Population Year
1947         83.0 234.289      235.6        159.0    107.608 1947
1948         88.5 259.426      232.5        145.6    108.632 1948
1949         88.2 258.054      368.2        161.6    109.773 1949
1950         89.5 284.599      335.1        165.0    110.929 1950
1951         96.2 328.975      209.9        309.9    112.075 1951
1952         98.1 346.999      193.2        359.4    113.270 1952

答案 1 :(得分:1)

命令longley[,-7]表示:除{7}之外的所有列longley。这称为负索引。

请查看?Extract以获取更多信息。