如何将多个描述性变量组合成新变量

时间:2015-10-25 22:13:17

标签: r merge

这是我的R代码示例,目前正在审查有关学术不端行为发生的附带项目。

每个MyObj()因素应该是一个二元变量,其中“是”和“否”的结果是否犯了学术不端行为的罪行。

正如您所看到的,我尝试使用AMC$ExamMC[x]函数,并尝试使用merge函数来获取正确的观察值,但似乎没有任何效果。如何添加“任何这些条件就足够了”条款才能使这个新变量有效?

ifelse

1 个答案:

答案 0 :(得分:0)

merge()通常用于将记录与公共密钥链接在多个数据框中,就像在数据库中一样。由于我们需要的所有数据都在一个数据帧中,我们只需要一些二进制逻辑。

如果您尝试将考试结果与逻辑值(TRUE / FALSE)结合起来而不是字符串("yes" / {{1},我认为您会发现这更容易})。您可以将字符串"no""TRUE"上的variations转换为逻辑。所以这就是我的建议:

"FALSE"

如果您想要更漂亮的图表或报告标签(例如# convert raw exam results to binary outcomes AMC$ExamMCH = character(nrow(AMC)) AMC$ExamMCH[AMC$Exams_H == "2-4 times"] = "TRUE" AMC$ExamMCH[AMC$Exams_H == "0 times"] = "FALSE" AMC$ExamMCH = as.logical(AMC$ExamMCH) # [do the same for $ExamMCI and others] # combine these into a column that is true if all of the others is AMC$ExamMC = all( AMC$ExamMCA, AMC$ExamMCB, AMC$ExamMCC, AMC$ExamMCD, AMC$ExamMCE, AMC$ExamMCF, AMC$ExamMCG, AMC$ExamMCH, AMC$ExamMCI) ),您可以转换回字符。如果您需要更复杂的逻辑来组合二进制变量,您也可以使用"Committed AMC",或者只使用any()(AND)和&(OR)运算符,如下所示: / p>

|

...但是在那一点上你可能不会费心转换为逻辑,因为相等运算符(AMC$ExamMC = AMC$ExamMCG == TRUE & AMC$ExamMCH == FALSE | AMC$ExamMCI == TRUE )可以很容易地检查字符串。这有帮助吗?