R-根据现有向量的元素创建新向量

拜霉素

在此先感谢您的帮助。我对R很陌生,并且在代码方面遇到了一些麻烦,在我看来它应该可以工作,但事实并非如此。我有一个像下面这样的数据框:

studentID   classNumber classRating
   7             1           4
   7             2           4
   7             4           3
   79            1           5
   79            2           3
   116           1           5
   116           2           4
   134           1           5
   134           3           5
   134           4           5

我希望它看起来像这样:

Student ID  class1  class2  class3  class4
     7         4       4      NA       3
     79        5       3      NA       NA
     116       5       4      NA       NA
     134       5       NA     5        5

我尝试将遇到的不同事情组合在一起,似乎最好的方法是创建一个新的数据框和矩阵,然后从当前数据框填充它。我想出了下面的破损代码:

classRatings = data.frame(matrix(NA,4,5))

for(i in 1:nrow(classDB)){
  #Find ratings by each student
  rowsToReplace = classDB$studentID==classRatings$studentID[i]
  #Make a row for each unique studentID in classRatings
  classDB$studentID[rowsToReplace] = classRatings$studentID[i]
     #for each studentID, find put the given rating for each unique class into
     #it's own vector 
     for(j in classDB$classNumber){
       if(classDB$classNumber==1){classRatings$class1==classDB$classRating}[j]
       if(classDB$classNumber==2){classRatings$class2==classDB$classRating}[j]
       if(classDB$classNumber==3){classRatings$class3==classDB$classRating}[j]
       if(classDB$classNumber==4){classRatings$class4==classDB$classRating}[j]
       if(classDB$classNumber==5){classRatings$class5==classDB$classRating}[j] 
              }
          }

我收到一条错误消息:

条件的长度> 1,并且仅使用第一个元素

而且我超出了我的技能水平,无法弄清楚。任何帮助表示赞赏。

山姆·菲克(Sam Firke)

tidyr包可以传播这个长条桌到更广泛的一种:

library(tidyr)
spread(classDB,classNumber,classRating,fill=NA)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sum(x:y)从R中的现有值创建一个新变量/向量

来自分类Dev

根据R中的现有列创建新列

来自分类Dev

R根据“行”向量和“列”向量的运算创建矩阵

来自分类Dev

根据向量在R中创建矩阵

来自分类Dev

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

来自分类Dev

R从特定矩阵元素创建向量

来自分类Dev

R中的For循环-创建新向量

来自分类Dev

R中的For循环-创建新向量

来自分类Dev

R /根据下三角元素的向量创建对称矩阵

来自分类Dev

通过在R中有效地连接2个向量的成对对应元素来创建向量列表

来自分类Dev

通过在R中有效地连接2个向量的成对对应元素来创建向量列表

来自分类Dev

在R中创建带有索引的向量

来自分类Dev

R中的向量,使用两个向量中的分量来创建新向量

来自分类Dev

根据作为数据帧超集的现有向量将列添加到R数据帧

来自分类Dev

R使用R根据现有列为数据框创建新列

来自分类Dev

R:根据因子向量合并列表中的元素

来自分类Dev

R:根据模式组合向量的两个元素

来自分类Dev

R:根据字符向量中的ID创建嵌套列表

来自分类Dev

根据R中数据框中的列条件创建向量

来自分类Dev

根据R中的主题创建包含0或1的向量

来自分类Dev

R根据直到值的第一个实例的值计数创建一个新向量

来自分类Dev

R中的元素向量和多个向量

来自分类Dev

在R中:如何根据现有变量的条件创建新变量

来自分类Dev

R-根据与现有列匹配的值索引创建新的列数据框

来自分类Dev

从R中的向量元素创建数字序列列表

来自分类Dev

R-创建向量中特定元素的总和

来自分类Dev

R:根据向量的订单清单

来自分类Dev

R:如何将元素从向量转移到新向量的特定位置

来自分类Dev

避免在R中使用lapply(),并找到向量B的所有元素,满足向量A的每个元素的条件

Related 相关文章

  1. 1

    使用sum(x:y)从R中的现有值创建一个新变量/向量

  2. 2

    根据R中的现有列创建新列

  3. 3

    R根据“行”向量和“列”向量的运算创建矩阵

  4. 4

    根据向量在R中创建矩阵

  5. 5

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

  6. 6

    R从特定矩阵元素创建向量

  7. 7

    R中的For循环-创建新向量

  8. 8

    R中的For循环-创建新向量

  9. 9

    R /根据下三角元素的向量创建对称矩阵

  10. 10

    通过在R中有效地连接2个向量的成对对应元素来创建向量列表

  11. 11

    通过在R中有效地连接2个向量的成对对应元素来创建向量列表

  12. 12

    在R中创建带有索引的向量

  13. 13

    R中的向量,使用两个向量中的分量来创建新向量

  14. 14

    根据作为数据帧超集的现有向量将列添加到R数据帧

  15. 15

    R使用R根据现有列为数据框创建新列

  16. 16

    R:根据因子向量合并列表中的元素

  17. 17

    R:根据模式组合向量的两个元素

  18. 18

    R:根据字符向量中的ID创建嵌套列表

  19. 19

    根据R中数据框中的列条件创建向量

  20. 20

    根据R中的主题创建包含0或1的向量

  21. 21

    R根据直到值的第一个实例的值计数创建一个新向量

  22. 22

    R中的元素向量和多个向量

  23. 23

    在R中:如何根据现有变量的条件创建新变量

  24. 24

    R-根据与现有列匹配的值索引创建新的列数据框

  25. 25

    从R中的向量元素创建数字序列列表

  26. 26

    R-创建向量中特定元素的总和

  27. 27

    R:根据向量的订单清单

  28. 28

    R:如何将元素从向量转移到新向量的特定位置

  29. 29

    避免在R中使用lapply(),并找到向量B的所有元素,满足向量A的每个元素的条件

热门标签

归档