【发布时间】:2019-06-26 15:05:13
【问题描述】:
我正在努力学习 R。所以我是初学者。我想编写如下代码,但我有问题。如果你能帮助我,我会感激不尽。
这只是我的练习。我一直在阅读一些关于 R 的书籍,并且一直在尝试做一些事情
class1 <- data.frame(name=c("a1","a2","a3","a4","a5","a6","a7","a8","a9","a10"),
surname= c("b1","b2", "b3", "b4", "b5","b6","b7","b8","b9","b10"),
exam1= c(25,35,55,65,75,35,80,90,100,65),
exam2 = c(56,65,25,95,78,69,45,23,45,63),
final= c(65,55,78,93,65,89,89,95,100,75))
lastnote <- (((class1$exam1+class1$exam2)/2)*0.4 + (class1$final*0.6))
lastnote
class1[,"lastnote"] <- lastnote
for (i in lastnote)
if(lastnote[i] < 50) {x= "FF"
} else if(lastnote[i] < 60) {x= "CD"
} else if(lastnote[i] < 65) {x= "CC"
} else if(lastnote[i] < 70) {x= "BC"
} else if(lastnote[i] < 80) {x= "BB"
} else if(lastnote[i] < 90) {x= "AB"
} else {x= "AA"}
x 将是本例中学生的字母数字。 我希望在 class1 中创建一个名为 x 或新列的向量 非常感谢您的帮助。
【问题讨论】:
-
您是要访问列表中的
lastnote变量还是要添加一个拥有这些值的列? -
你遍历 lastnote 的元素。那么你就不能使用
lastnote[i],而只能使用i。否则,使用for(i in 1:length(lastnote))迭代从 1 到lastnote长度的数字,以使您的代码正常工作。 -
嗨 Jenks,我正在尝试在值中添加一列
-
嗨,朱利安,是的,它奏效了。谢谢你 。但是当我看 x 时,只写了“FF”
-
@pomatomus 你在每次迭代时影响单个值在同一位置,你需要在向量的正确位置影响结果