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 循环的范围

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在向量中找到小于R中另一个向量的值的最大元素

如何获取R中列表的每个元素的最后一个子元素

如何使向量根据R中的最后一个值选择3个可能的值

根据R中另一个向量中定义的数字位置查找向量的元素

如何在R中循环的最后一个元素之后追加到列表?

Ifelse in R更改向量中的最后一个单词

获取R中向量中重复值的第一个元素的索引

如何在R中采用数值向量的元素,并创建一个包含1 :(每个元素)seq的新向量

向量中的每个元素乘以下一个元素[r]

来自一个向量的元素在具有R的另一个向量中的位置

R中向量的最后一个值的指数移动平均值

如何获得一个向量,该向量标识元素在R中属于哪个间隔

创建一个元素与r中的两个向量完全交叉的向量

R,JAGS,r2jags:在“ for”循环的开头访问最后一个元素

将向量中的缺失值替换为R中不缺失的最后一个值

在R循环中创建Plotly显示了所有元素的最后一个图表

R:识别重复组中的第一个和最后一个元素

R 中的 for 循环只迭代最后一个条目

如何在 R 中列表的每个向量(不同长度)中附加第一个和最后一个元素,而不会使代码变慢?

R:通过将另一个向量 'b' 中的值添加到向量 'a' 中的前一个元素来增加向量 'a' 中元素的值

在 R 中使用 cat 删除最后一个向量元素中的逗号

For 循环只迭代列表中的最后一个元素

R 选择向量中 N 个均匀分布的元素,包括第一个和最后一个

如何从R中的向量中提取第一个和最后一个非空值?

R: for 循环只对最后一个列表元素执行

如果元素在 R 中是非 NA,则通过另一个向量条件更新向量

R 将向量拆分为重叠的子向量并连接第一个和最后一个元素

将向量的每个元素分配给R中一行中其他几个向量的最后一个元素

R在使用循环时访问列表的第一个元素并将其附加到向量中