R中没有左参数的公式是什么意思,例如〜X?

时间:2013-05-10 07:59:28

标签: r formula

我理解在类似y ~ x的公式中,我将“y”视为“x”的函数。在数学中,这将类似于f(x) = x

在R中,像xtabs这样的函数可以在没有左侧的情况下获取公式对象,例如xtabs( ~ x)。根据我对公式的理解,我现在在数学= x中看不出“x”的函数,但这显然不是R如何理解公式(它返回一个因子的列联表,例如)。

那么我如何理解空左手参数的含义呢?

我确定已在某处解释过,但我很难用谷歌搜索“R~”。

3 个答案:

答案 0 :(得分:2)

在R中,公式的使用并不强烈;虽然有一些工具可以更容易地解析公式,例如创建对比,但是包装作者可以根据解析的内容做一些有用的事情。

您经常会在没有左侧的情况下找到~x,例如计数,例如在格子条形图或直方图中。通常,您可以将空的左侧视为“计数”。

答案 1 :(得分:2)

公式仅在与其一起使用的特定函数的上下文中具有意义。相同的公式可能意味着一个功能与另一个功能完全不同。

xtabs的情况下,它将左手侧与右手侧的水平相加,如果没有左手侧则给出计数。也就是说,默认左手侧可以被视为1的向量。例如这些都给出了相同的结果

x <- c(1, 1, 2, 2, 2)

# 1
xtabs(~ x)

# 2
ones <- rep(1, length = length(x))
xtabs(ones ~ x)

这也给出了类似的结果,但在这种情况下,结果是数组而不是表:

# 3
tapply(ones, x, sum)

答案 2 :(得分:0)

与此同时,我学到了以下内容,并希望将其添加到已经给出的答案中:

双面公式,例如plot(y ~ x)lm(y ~ x),是不对称问题的符号表示(一组)依赖和自变量。因变量位于公式的左侧,您可以将公式读作“(左侧)作为(右侧)的函数”。

单边公式,例如xtabs(~ x + y)cor.test(~ x + y),是关于相关性的对称问题的符号表示(在两个“相等”变量之间的广泛日常感觉(例如,依赖,独立或未知依赖)。

随意纠正我的不良英语。