У меня есть начальный вопрос. Это связано с эффективностью и использованием меньших строк кода. (Я планирую специализацию в области компьютерных наук в колледже, и я понял, что лучше кодировать было бы хорошо!) У меня есть набор данных с 45 переменными и 1000+ наблюдениями, но мне нужно манипулировать 3 переменными и найти самое низкое значение в каждой из этих столбцов.присвоение строк числу на основе его столбца в фрейме данных
Например, у меня есть переменная 1 (назовите ее «var1») в столбце 11, переменной 2 («var2») в столбце 17 и переменной 3 («var3») в столбце 23. У меня есть функция, которая принимает строку в качестве аргумента (var1, var2 или var3), переходит в этот столбец в наборе данных и проходит через него и ищет самое низкое значение.
В настоящее время мой код выглядит довольно неэффективно:
whichLowest <- function(variable) {
# Function has some read.csv things and other pre-computational stuff here
if (variable == "var1")
varData <- subset(myDataset, select = colnames(stateData)[11])
else if (variable == "var2")
varData <- subset(myDataset, select = colnames(stateData)[17])
else if (variable == "var3")
varData <- subset(myDataset, select = colnames(stateData)[23])
else
stop("invalid outcome")
for (i in varData) {
# calculates lowest value in that column
}
Как вы можете видеть, у меня есть 3, если заявления внутри для цикла, чтобы выяснить, что переменная, которая дается функцией. Поскольку у меня есть 3 if-утверждения, я чувствую, что есть более эффективный способ сделать это. Моя мысль - это что-то вроде назначения var1, var2 и var3 некоторого числа, а затем выполнения того же самого. Однако я не знаю, как подойти к этому!
Просьба представить воспроизводимый пример (код для генерации ваших данных, возможно, с использованием случайных данных) – smci
Использование строки для поиска столбца называется индексированием столбцов *** (по имени) *** – smci