我有一些初學者問題。它與效率和使用較少的代碼行有關。 (我計劃在大學裏主修計算機科學,我認爲在編碼方面做得更好!)我有一個包含45個變量和1000多個觀察值的數據集,但是我需要操縱3個變量並找到最低值每個這些列。例如,我在第11列有變量1(稱爲「var1」),第17列有變量2(「var2」),第23列有變量3(「var3」)。我有一個函數,將一個字符串作爲參數(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個if語句內的for循環找出是考慮到該函數的變量是什麼。因爲我有3條if語句,所以我覺得有一個更有效的方法可以做到這一點。我的想法就像分配var1,var2和var3某個數字然後做同樣的事情。但是我不知道如何解決這個問題!
請發佈一個可重現的例子(代碼來生成您的數據,可能使用隨機) – smci
使用字符串來查找列被稱爲***列索引(按名稱)*** – smci