Ваши данные выглядят как матрица строк. Вам нужно конвертировать их в числовые.
Воспроизводимый пример был бы хорош, как просил вас Сотос. Мы не можем узнать из вашего способа предоставления примера, является ли ваш тип данных строковым или числовым.
# reproduce your data for you
df = data.frame(matrix(data=
c("weights",0, 0.005, 0, 0.018, 0, 0.007, "N/A",
1267359,2, 0, 0, 0, 0, 1, 1,
1295720,2, 0, 1, 0, 0, 1, 1,
1295721,2, 0, 0, 0, 0, 1, 1,
1295723,2, 0, 0, 0, 0, 1, 1,
1295724,2, 0, 1, 0, 1, 1, 1),
ncol = 8, byrow = TRUE
), stringsAsFactors = FALSE)
colnames(df) = c("ID","885038", "885039", "885040", "885041", "885042", "885043", "Class")
df2 = df[, !colnames(df)%in%c("Class")]
# dummy <- read_csv("dummy.csv")
dummy = df2
dummy <- t(dummy)
colnames(dummy) <- dummy[1,]
dummy <- dummy[-1,]
# "dummy" is a matrix of string. You need a data.frame of numeric.
# weights 1267359 1295720 1295721 1295723 1295724
# 885038 "0" "2" "2" "2" "2" "2"
# 885039 "0.005" "0" "0" "0" "0" "0"
# 885040 "0" "0" "1" "0" "0" "1"
# 885041 "0.018" "0" "0" "0" "0" "0"
# 885042 "0" "0" "0" "0" "0" "1"
# 885043 "0.007" "1" "1" "1" "1" "1"
class(dummy) # [1] "matrix"
dummy = data.frame(dummy)
dummy$weights = as.numeric(as.character( dummy$weights))
class(dummy$weights) # [1] "numeric"
data = dummy
for (i in 1:ncol(dummy))
{
rowMin = which.min(data$weights)
print(paste(nrow(data),rownames(data)[rowMin]))
data = data[-rowMin,]
}
# [1] "6 885038"
# [1] "5 885040"
# [1] "4 885042"
# [1] "3 885039"
# [1] "2 885043"
# [1] "1 885041"