HDDZ 你的数据跟 R 里的 USAarrests 有点不同,你用 colnames() 和 rownames() 命令查看一下。简单说,USAarrests 里的 Alabama 等不是列向量,而是行名称,在 scale() 的时候不会被算到数据里去;而你的 Hohhot 等是数据的第一列,所以 scale() 命令也会试图将其标准化,而它们不是数值型数据,于是报错。
假设你的数据名称是 x,你可以试试:
y <- x[-1]
rownames(y) <- x[1]
scale(y)
但愿你的数据不是 tibble格式,tibble不能被赋予行名称,而普通 data.frame 可以。