я следующий вход:Выберите имя столбца первого столбца, который соответствует определенный логический тест
id <- c("a", "b", "c", "d")
target <- seq(from = 100, to = 400, length.out = 4)
a <- c(300, 304, 100, 405)
b <- c(300, 104, 100, 405)
c <- c(85, 304, 500, 405)
df <- as.data.frame(cbind(id, target, a, b, c))
Я хотел бы добавить новый столбец «столбец», который указывает на строку, которая из столбцов «а» , «b», «c» будет первым столбцом со значением, меньшим целевого решения. Запрошенный результат выглядит следующим образом:
Обязательный выход:
df$column <- c("c", "b", "a", "NA")
df
Я подумал про concenated если чек на строку и применить это ко всем строкам с помощью функции применяются. Однако столбцы abc довольно длинные (круглый 20, поэтому потребуется цикл), а число строк - около 4.000. Есть ли у кого-нибудь идея о том, как его решить?
Спасибо за ответ. Я изменил свою систему на Mozilla/5.0 (X11, Linux x86_64) AppleWebKit/538.1 (KHTML, как и Gecko) RStudio Safari/538.1 Qt/5.4.0 с тех пор skript дает мне следующее сообщение об ошибке: Ошибка в Ops.data.frame (df [, 3: 7], df [, 2]): '<' определяется только для кадров данных одинакового размера, и если я изменю код на df [, 3: 7], df [[, 2]]) Ошибка в [[.data.frame (df,, 2): отсутствует аргумент «..1», без значения по умолчанию. Любая идея, как я мог решить проблему? – Nils