r - R:For循环仅更新向量中的最后一个元素
问题描述
我遵循的逻辑是;
-> 创建一个包含 1000 个元素的结果向量
-> 使用 for 循环,在每次迭代中将旧样本值“sorting_hat”替换为新值
-> 使用 if else 语句将结果向量中的第 i 次迭代替换为依赖于新采样值“sorting_hat”的字符串
all_student_houses <- rep(0, 1000)
total_students = 1000
student_number = 1
for (student_number in total_students) {
sorting_hat <- sample(x = 1:4, size = 1, replace = TRUE, prob = c(9/41, 8/41, 14/41, 10/41) )
if (sorting_hat == 1) {
all_student_houses[student_number] <- "Slytherin"
} else if (sorting_hat == 2) {
all_student_houses[student_number] <- "Gryffindor"
} else if (sorting_hat == 3) {
all_student_houses[student_number] <- "Ravenclaw"
} else {
all_student_houses[student_number] <- "Hufflepuff"
}
}
运行后我的向量输出是:
>all_student_houses
[995] "0" "0" "0" "0" "0" "Slytherin"
我希望这个向量的每个元素都被 ifelse 语句中的四个字符串之一替换,而不仅仅是最后一个元素。目前是什么让我绊倒?
解决方案
尝试:
for (student_number in 1:total_students)
您应该指定for 循环的范围。
推荐阅读
- sql - 如果它与同一个表中的另一个列值匹配,则获取列值
- amazon-web-services - 如何允许用户将视频文件传输到 ec2 实例
- sql - 尝试在 PostgreSQL 中按行获取两列的总和时,“没有运算符与给定的名称和参数类型匹配”
- algorithm - “记住我”cookie 的竞争条件
- javascript - Vuejs jquery 数据表直接插件无法正常工作
- machine-learning - ML.Net 0.17.0 版本之后的 ML.Net MatrixFactorizationTrainer 类发生了什么?
- javascript - Vue SPA 单文件组件元素与 Stripe 元素绑定
- javascript - 为什么在 Google Script 中使用 removeLabel 函数时出现无效参数
- elasticsearch - 如何在 Kibana(弹性搜索)中搜索 json 字符串属性中的子字符串?
- php - 我有一个 PHP 文件,那么如何在 W3C 验证器上验证 PHP 文件?