-1

我正在尝试为推荐系统构建序列数据。我已经建立了一个交叉表数据(表1)和表2,如下所示:

在此处输入图像描述

我一直在尝试用 R 中表 2 中的“等级”替换表 1 中的所有 1。

非常感谢任何见解/建议。

4

1 回答 1

0

而不是用第二个替换第一个,第二个表直接更改为“wide”dcast

library(reshape2)
res <- dcast(df2, St.No. ~ Courses, value.var = 'Grade')[names(df1)]
res
#    St.No. Math Phys Chem CS
#1      1         A       B
#2      2         B    B   
#3      3    A         A  C
#4      4    B    B       D

如果我们需要用 0 替换空格

res[res =='"] <- "0"

数据

df1 <- data.frame(St.No. = 1:4, Math = c(0, 0, 1, 1), Phys = c(1, 1, 0, 1),
        Chem = c(0, 1, 1, 0), CS = c(1, 0, 1, 1))

df2 <- data.frame(St.No. = rep(1:4, each = 4), Courses = rep(c("Math", 
      "Phys", "Chem", "CS"), 4),
                Grade = c("", "A", "", "B", "", "B", "B", "", 
      "A", "", "A", "C", "B", "B", "", "D"),
           stringsAsFactors = FALSE)
于 2018-03-04T05:22:59.360 回答