У меня есть data.frame в R; это называется p
. Каждый элемент в data.frame имеет значение True или False. Моя переменная p
имеет, скажем, m строки и n столбцы. Для каждой строки существует только один элемент TRUE
.R: манипулирование data.frames, содержащими строки и логические значения
Он также имеет имена столбцов, которые являются строками. То, что я хотел бы сделать, это следующее:
- Для каждой строки в
p
я вижуTRUE
Я хотел бы заменить с именем соответствующего столбца - Я бы тогда хотел свернуть data.frame , который теперь содержит
FALSE
s и имена столбцов, к одному вектору, который будет содержать m элементов. - Я хотел бы сделать это с помощью R-thonic, чтобы продолжить мое просветление в R и внести свой вклад в мир без for-loops.
я могу сделать шаг 1, используя следующий цикл:
for (i in seq(length(colnames(p)))) {
p[p[,i]==TRUE,i]=colnames(p)[i]
}
но Тереза нет красоты здесь, и я полностью подписался на этот обмен на петли-в-R-это-вероятно, неправильный менталитет , Может быть, неправильно слишком сильно, но они, конечно, невелики.
Я действительно не знаю, как сделать шаг 2. Я как бы надеялся, что сумма строки и FALSE
вернет строку, но это не так. Я как бы надеялся, что могу использовать какой-либо оператор OR, но не могу этого понять (Python отвечает на False or 'bob'
с помощью 'bob'
). Поэтому, опять же, я обращаюсь к вам за красивыми людьми Rstats за помощью!
Я становлюсь старым. Вы били меня на пять минут ;-) –
см. Комментарий по решению Дирка! Второй подход не дает того же ответа, что и первый. –
Я исправил это. – Shane