R: Как найти минимальное значение в строке, которая содержит как числовые, так и нечисловые элементы?

У меня есть матрица - столбцы 1-371 являются числовыми, а столбцы 372-379 нечисловыми (т.е. хранят информацию о возрасте, поле). Я хочу найти минимальное значение каждой строки числовых элементов (для каждой строки просмотрите 371 значение).

Я пытаюсь сделать вектор счета, поэтому код:

count_a <- 0
for (i in 1:nrow(data)) {
    if (min(data[i,][which(data$Age < age & data$Gender == gender)]) <= threshold) {
        count_a <- count_a+1
    }
}

Однако я продолжаю получать эту ошибку: Ошибка в FUN(X[[1L]],...) : определена только во фрейме данных со всеми числовыми переменными

Что я должен делать? Спасибо!


person Jennifer Collins    schedule 22.07.2012    source источник
comment
Если у вас есть сочетание числовых и нечисловых столбцов, у вас нет матрицы. Вероятно, у вас есть data.frame.   -  person Ari B. Friedman    schedule 22.07.2012
comment
Вероятно, вам следует более подробно описать, что вы на самом деле пытаетесь сделать, потому что, судя по внешнему виду этого кода, у вас есть несколько других вещей, которые, вероятно, неверны. В частности, ваш оператор which, вероятно, не делает того, что вы думаете.   -  person joran    schedule 22.07.2012
comment
Также было бы полезно, если бы вы предоставили структуру ваших данных (str(data)). При этом ответ Тайлера (и комментарий баптиста) точен.   -  person Roman Luštrik    schedule 22.07.2012
comment
Спасибо. Для каждой строки я пытаюсь найти минимальное значение в столбцах 1-371. Я хочу, чтобы count_a увеличивался только в том случае, если минимальное значение для строки i меньше порогового значения, и если возраст человека меньше указанного возраста, а пол человека - указанный пол.   -  person Jennifer Collins    schedule 22.07.2012


Ответы (1)


Используя набор данных CO2, попробуйте что-то вроде этого:

NUM <-function(dataframe)dataframe[,sapply(dataframe,is.numeric)]
apply(NUM(CO2), 1, min)
person Tyler Rinker    schedule 22.07.2012