这里是获取样本数据集的代码:
数据长这样:
有 70 个学习目标,因此仅复制和粘贴尝试和分数将是枯燥无味的,我想知道是否有更好的方法清理数据。
R: 我试图使用 R 中的
Excel: 由于姓名缺失,所有 70 个学习目标的相应行都需要进行
有更好的方法吗?
set.seed(0)
practice <- matrix(sample(1:100, 20), ncol = 2)
data <- as.data.frame(practice)
data <- cbind( lob = sprintf("objective%d", rep(1:2,each=5)), data)
data <- cbind( student = sprintf("student%d", rep(1:5,2)), data)
names(data) <- c("student", "learning objective","attempt", "score")
data[-8,]
数据长这样:
student learning objective attempt score
1 student1 objective1 90 6
2 student2 objective1 27 19
3 student3 objective1 37 16
4 student4 objective1 56 60
5 student5 objective1 88 34
6 student1 objective2 20 66
7 student2 objective2 85 42
9 student4 objective2 61 82
10 student5 objective2 58 31
What I want is:
student objective1 objective2
attempt score attempt score
1 student1 90 6 20 66
2 student2 27 19 85 42
3 student3 ... 0 0
4 student4 ... ...
5 student5 ... ...
有 70 个学习目标,因此仅复制和粘贴尝试和分数将是枯燥无味的,我想知道是否有更好的方法清理数据。
R: 我试图使用 R 中的
melt
函数获取新数据,但它效果不佳。一些学生的得分缺失,例如在这种情况下的student3
,而且学生姓名未列出,因此我不能只使用 cbind
来合并得分。Excel: 由于姓名缺失,所有 70 个学习目标的相应行都需要进行
VLOOKUP
检查:(=VLOOKUP($C7,'0learning.csv'!$B$372:$G$395,5,0)
(=VLOOKUP($C7,'0learning.csv'!$B$372:$G$395,6,0)
有更好的方法吗?
data.table
的开发版本? - akrun