我有一些初学者问题。它与效率和使用较少的代码行有关。 (我计划在大学里主修计算机科学,我认为在编码方面做得更好!)我有一个包含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