我正在尝试为推荐系统构建序列数据。我已经建立了一个交叉表数据(表1)和表2,如下所示:
我一直在尝试用 R 中表 2 中的“等级”替换表 1 中的所有 1。
非常感谢任何见解/建议。
而不是用第二个替换第一个,第二个表直接更改为“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)