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