[问题] 如何将function放入循环? (求救)

楼主: ronald736 (明天会更好)   2018-10-06 11:11:17
我想将资料每笔按照规则分群,资料如下图:
https://imgur.com/a/wXNRKJ6
图中想把"平均成绩"依照P50、P70这2个字段分成3类
平均成绩 < P50 为第3类
平均成绩 >= P50 且 <P75 为第2类
平均成绩 >=P75 为第1类
我打算将function放入循环 (因为是要每1笔都依照字段分群)
程式码如下,能否帮我看看是写法上错误吗? 还是那边的观念不对?
classp <- NULL
for (i in 1:dim(pdata)[1]) {
cf <- function(pdata$平均成绩[i])
{
if (pdata$平均成绩[i]<pdata$P50[i]) {
classp[i] = 3
} else if (pdata$平均成绩[i]>=pdata$P50[i] & pdata$平均成绩
[i]<pdata$P75[i]) {
classp[i] = 2
} else {
classp[i] = 1
}
return(classp[i])
}
classp[i] <- cf(pdata$平均成绩[i])
}
classp
程式码与错误图:
程式码 : https://imgur.com/a/Sw9Mrmb
错误 : https://imgur.com/a/3DeYkYJ
作者: celestialgod (天)   2018-10-06 15:29:00
为什么不直接用cut或是findInterval就好.....
作者: HumuHumu (呼姆呼姆)   2018-10-06 12:28:00
你function的写法完全写错了

Links booklink

Contact Us: admin [ a t ] ucptt.com