【发布时间】:2015-12-04 05:51:24
【问题描述】:
正在使用的数据集在这个 google sheet 链接中 https://docs.google.com/spreadsheets/d/1eV33Sgx_UVtk2vDtNBc4Yqs_kQoeffY0oj5gSCq9rCs/edit#gid=1959019385&vpid=A1
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 种考试学术不端行为中的任何一种。如果观察行中没有真实结果,我希望新变量结果读作“错误”,这意味着他们(观察行)从未犯过考试学术不端行为
我对这个新变量的代码有什么
surveySP15$ExamMC = any(surveySP15$ExamMC.A, surveySP15$ExamMC.B, surveySP15$ExamMC.C, surveySP15$ExamMC.D, surveySP15$ExamMC.E, surveySP15$ExamMC.F, surveySP15$ExamMC.G, surveySP15$ExamMC.H, surveySP15$ExamMC.I)
但是这个设置似乎被字符串中的最后一个变量大小写覆盖 (AMC.dataset$ExamMC.I)
【问题讨论】:
-
请展示一个可重现的例子和预期的输出
-
原来的 9 个变量值最初有 4 个不同级别的值“0 次”、“1 次”、“2-4 次”、“>4 次”,我重新编码这 9 个变量以产生如果值为 1 次或更多,则输出 true,因此“1 次”、“2-4 次”和“>4 次”都产生逻辑结果“TRUE”,“0 次”值产生“FALSE”结果,
-
我想创建一个新变量,它结合了所有九个变量的结果,这样如果在一行中,9 个变量中的任何一个的情况为真,新变量就会有结果真实的;但是,如果所有 9 个变量的结果都为 false,那就是我希望这个新变量的结果也为 False
-
如果你展示一个小例子和基于它的预期输出,其他人会更容易理解和回答。
-
如果我能做到这一点,我就不会遇到问题,老实说,我以为我给你的是你要求的样品。不过,您下面的人似乎理解我。谢谢。