【发布时间】:2019-08-09 22:19:22
【问题描述】:
我正在尝试编写一个循环来确定哪个单元格的值最大,然后选择该单元格作为结果,其中包含高、中或低字符串。这是试用的数据。
data <- matrix(c(0.3000003,0.3299896,0.3700101,
0.3299896,0.3700101,0.3000003,
0.3700101,0.3000003,0.3299896,
0.3000003,0.3299896,0.3700101,
0.3299896,0.3700101,0.3000003,
0.3700101,0.3000003,0.3299896),6,3)
colnames(data) <- c("Low","Medium","High")
rownames(data) <- paste("case",1:6)
> data
Low Medium High
case 1 0.3000003 0.3700101 0.3299896
case 2 0.3299896 0.3000003 0.3700101
case 3 0.3700101 0.3299896 0.3000003
case 4 0.3299896 0.3000003 0.3700101
case 5 0.3700101 0.3299896 0.3000003
case 6 0.3000003 0.3700101 0.3299896
我正在使用这个函数,但它似乎只计算第一行。
assign.levels <- function(data) {
for (i in nrow(data)) {
scored.thetas.1 <- names(which.max(data[i,1:3])) ## I wrote 1:3 here because I have multiple columns in the original dataset.
return(scored.thetas.1)
}
}
> assign.levels(data)
[1] "Medium"
有什么想法吗?
提前致谢!
【问题讨论】:
-
我认为它实际上是从最后一行返回结果