首页 > 解决方案 > 对于 mtcars 数据,您如何使用 R 找到具有不同级别(带有 3 个示例场景)的变量的所有可能的唯一成对比较?

问题描述

对于 mtcars 数据,您如何使用 R 找到具有不同级别(带有 3 个示例场景)的变量的所有可能的唯一成对比较?有没有办法在不同的场景中使用 r 代码来做到这一点?

以下是我感兴趣的示例:

示例 1:我有 1 个因子变量(即“cyl”),具有 3 个级别(即“4”、“6”和“8”),位于数据框的 1 列中。受试者只能是一个变量的一个级别,并且所有受试者在给定行的 1 列中都有一些与变量相关联的值。有没有办法使用 R 代码找到这 1 个变量与 3 个级别的所有唯一的 2 度成对比较(例如,mtcars$cyl == 4 和 mtcars$cyl == 5、mtcars$cyl == 4 和mtcars$cyl == 6 等...)?

示例 2:我有 1 个因子变量(即“cyl”)具有 3 个水平(即“4”、“6”和“8”)和另一个因子变量(即“Engine”)具有 2 个水平(即,“0 = V 形”,“1 = 直”)。受试者只能是每个变量的一个级别,并且所有受试者在给定的 2 列行中都有与 2 个变量相关联的值。有没有办法计算出 2 个变量的所有唯一 2 度成对比较(例如,mtcars$cyl == 4 和 mtcars$Engine == 0、mtcars$cyl == 6 和 mtcars$Engine == 1 , 等等...) 使用R代码?

示例 3:我有 1 个因子变量(即“cyl”)具有 3 个水平(即“4”、“6”和“8”),另一个因子变量(即“Engine”)具有 2 个水平(即、“0 = V 形”、“1 = 直线”)和具有 2 个级别的第三因子变量(即 am)(即“0 = 自动”、“1 = 手动”)。受试者只能是每个变量的一个级别,并且所有受试者在给定的 3 列行中都有与 3 个变量相关联的值。有没有办法找出 3 个变量的所有唯一 3 度成对比较(例如,mtcars$cyl == 4 和 mtcars$Engine == 0 和 mtcars$am = 0、mtcars$cyl == 6 和mtcars$Engine == 1 和 mtcars$am = 1,等等……)使用 R 代码?

提前致谢。

标签: rstatisticscombinations

解决方案


您还可以使用tidyr包中的交叉功能:

    library(tidyr)
    crossing(mtcars$cyl, mtcars$vs, mtcars$am)

推荐阅读