Исходя из вашего фрейма данных, похоже, что первый столбец является строкой.prcomp
не переносит строки.Что-то, что вы могли бы сделать:
har.lip <-read.csv("HData.csv", header=TRUE, sep=",")
# Coerce to matrix, remove the first column which has characters
har.lip_mat <- as.matrix(har.lip[ ,-1])
# run function on the matrix
pca <- prcomp(har.lip_mat)
Это должно дать вам желаемый результат.
Чтобы проиллюстрировать некоторые из ваших дополнительных вопросов, вот более расширенное представление:
library(dplyr)
# Make a data set that looks like yours
sim_data <- mtcars %>%
tibble::rownames_to_column(var = "id")
# Make your data set a matrix and remove non-numeric columns
sim_data_mat <- as.matrix(sim_data[ ,-1])
# Add row names to your matrix from original data ste
rownames(sim_data_mat) <- sim_data[ ,1]
# Keep complete cases only
sim_data_mat <- sim_data_mat[complete.cases(sim_data_mat),]
# Now run your
prcomp(sim_data_mat)
``