【发布时间】:2015-12-04 21:39:48
【问题描述】:
正在使用的数据集在这个 google sheet 链接中 https://docs.google.com/spreadsheets/d/1eV33Sgx_UVtk2vDtNBc4Yqs_kQoeffY0oj5gSCq9rCs/edit?usp=sharing
AMC.dataset$ExamMC.A<-surveySP15$Exams_A
AMC.dataset$ExamMC.A<-factor(NA, levels=c("TRUE", "FALSE"))
AMC.dataset$ExamMC.A[AMC.dataset$Exams_A=="1 time"|AMC.dataset$Exams_A=="2-4 times"|AMC.dataset$Exams_A==">4 times"]<-"TRUE"
AMC.dataset$ExamMC.A[AMC.dataset$Exams_A=="0 times"]<-"FALSE"
AMC.dataset$ExamMC.A=as.logical(AMC.dataset$ExamMC.A)
我使用这 5 行代码将所有 9 个 Exams_A 到 Exams_I 变量重新编码为逻辑二进制结果“真”,以供那些对这 9 个变量中的任何一个回答 1 次或多次的人使用。我想将所有这些变量组合到数据集中的一个新列中,对于每个观察行,如果整行中的 9 个考试 A 到 I 中的任何一个都存在“真”的情况,则新变量结果将读取为“真实”,这意味着他们至少犯过一次数据集中记录的 9 种考试学术不端行为中的任何一种。如果观察行中没有真实结果,我希望新变量结果读作“错误”,这意味着他们(观察行)从未犯过考试学术不端行为
我对这个新变量的代码有什么
AMC.dataset$ExamMC = any(AMC.dataset$ExamMC.A, AMC.dataset$ExamMC.B, AMC.dataset$ExamMC.C, AMC.dataset$ExamMC.D, AMC.dataset$ExamMC.E, AMC.dataset$ExamMC.F, AMC.dataset$ExamMC.G, AMC.dataset$ExamMC.H, AMC.dataset$ExamMC.I)
但是,此代码已被字符串 (AMC.dataset$ExamMC.I) 中的最后一个变量输出覆盖,它有 215 个 False 案例和 0 个 true,将覆盖字符串的其余部分以提供新的变量输出215 个“假”案例,即使其他变量可能将“真”作为案例输出。
编辑
我现在已经为考试不端行为变量集创建了一个数据框
AMC.dataset$ExamMCdf<-data.frame(AMC.dataset$ExamMC.A, AMC.dataset$ExamMC.B, AMC.dataset$ExamMC.C, AMC.dataset$ExamMC.D, AMC.dataset$ExamMC.E, AMC.dataset$ExamMC.F, AMC.dataset$ExamMC.G, AMC.dataset$ExamMC.H, AMC.dataset$ExamMC.I)
现在我的问题是如何在正确读取每个观察行的新列中创建复合变量,将数据框中甚至具有单个“真”结果的任何行标记为复合变量的“真”多变的。任何没有“真”结果的观察行都应由复合变量标记为“假”。
感谢您的所有帮助。
【问题讨论】:
-
我想这有点像 ifelse 语句,因此如果该观察行记录的 9 种考试不当行为中的任何一种记录为“真”,那么新的复合变量将显示为“真”数据集,如果是其他情况(如 9 种学术不端行为中的任何一种都没有“真”输出),那么新的复合变量将显示为“假”,因为该观察行没有犯任何类型的考试不端行为。 .
-
或者作为一个合并函数?
-
该电子表格未公开共享或不与具有链接访问权限的人共享
-
修复了链接问题!请让我知道我是否可以提供其他任何东西来更轻松地回答我的问题
-
这是一个模拟数据集吗?如果这是实际学生并且您在美国,则可能不允许您共享此数据(由于 FERPA)