我正在学习改进R中的编码。我有以下代码:
data$score[testA == 1] <- testA_score
data$score[testB==1] <- testB_score
所以基本上我有四列想要合并为一列:testA = 1指示学生是否参加了考试的A版,而testA_score是他们的分数;testB = 1指示学生是否参加了考试的B版,而testB_score是他们的分数。我想将此信息合并到新的列分数中。
假设我有testA,testB到testH。所有值均为0或1。如果任何测试等于1,如何创建新列test_complete等于1?
基本上,作为一名以前的Stata用户,我正在寻找egen rowtotal和egenrowfirst的R等效命令。非常感谢。
您可以从所有测试中取出最大值:由于只有1个或0个值,只有完成至少一项测试后,最大值才等于1
testA <- c(1,0, 0, 1,0,0,0)
testB <- c(0, 1,0, 0, 1,0,1)
testC <- c(0, 0, 0,1, 0, 1, 0)
df <- as.data.frame(cbind(testA, testB, testC))
df$completed <- apply(df[, 1:3], 1, max)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句