以正确的格式获取数据帧以进行聚类分析

时间:2018-05-08 19:57:46

标签: r

在示例R数据集上:

data("USArrests")当我使用head(USArrests)时,我得到以下结果:

            Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

当我使用str(USArrests)时,会出现以下结果:

'data.frame':   50 obs. of  4 variables:
  $ Murder  : num  13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
  $ Assault : int  236 263 294 190 276 204 110 238 335 211 ...
  $ UrbanPop: int  58 48 80 50 91 78 77 72 80 60 ...
  $ Rape    : num  21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...

即使有另一列具有不同的状态(没有列标题)。当我使用str函数时,如何获取数据以便第一列不显示?我有一个我尝试群集的国家/地区列表,但我无法使用scale功能,因为显然第一列不是数字,但我无法创建新数据框没有那一栏,因为我试图聚集国家......

1 个答案:

答案 0 :(得分:2)

状态名称似乎是rownames,而不是完整列。您可以使用以下命令将rownames转换为列:

USArrests <- cbind(rownames(USArrests), USArrests)

或将列转换为rownames:

rownames(df) <- df$states

tibble包还包含有用的功能:rownames_to_column()column_to_rownames()