【问题标题】:How to create logical variables out of multilevel factor in R如何从R中的多级因子创建逻辑变量
【发布时间】:2016-01-07 04:09:38
【问题描述】:

我想为因子x 的每个级别创建逻辑变量。

所以从x <- factor(c('apple','orange','apple','peach')) 的因子我会得到三个变量,每个变量的长度为x

apple = c(T,F,T,F)
orange = c(F,T,F,F)
peach = c(F,F,F,T)

有这样的功能吗?

【问题讨论】:

标签: r


【解决方案1】:

试试这个。它创建了这些向量的数据框:

x <- as.factor(c('apple','orange','apple','peach'))
df <- data.frame(sapply(levels(x), function(l) l == x))

【讨论】:

  • 正是我需要的,但您能解释一下function(l) l==x 的作用吗?哦,我明白了...如此简单...
  • sapply 将迭代地从级别(x)中获取因子的每个级别,将每个级别传递给其中 l 是级别之一的函数。然后,l == x 正在检查哪些 x 值与通过的单级 l 匹配。此操作将返回该单个级别的真/假向量。
  • 您可以尝试通过简单地执行 'apple' == x 来查看。
猜你喜欢
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多