【问题标题】:What does factor(0) mean?因子(0)是什么意思?
【发布时间】:2019-05-02 11:25:00
【问题描述】:

我在做免疫学研究,想确定符合特定要求的基因名称。

ifng5p <- df$Gene[which(as.numeric(df$Prop1) <= df[df$Genes == "Ifng", "Prop1.5p"] 
& as.numeric(df$Prop1) >= df[df$Genes== "Ifng", "Prop1.5m"] & as.numeric(df$Prop1) <= df[df$Genes == "Ifng", "Prop1.5p"] 
& as.numeric(df$Prop1) >= df[df$Genes=="Ifng", "Prop1.5m"])]

我希望输出基因的名称(位于“基因”列中),而我的输出如下:

factor(0)
49041 Levels:  0610005C13Rik 0610006L08Rik 0610009B22Rik 0610009E02Rik 0610009L18Rik ... Zzz3

【问题讨论】:

标签: r


【解决方案1】:

factor(0) 表示长度为 0 的 factor 类型的向量。你得到它是因为你的子集没有返回任何值。您可以使用iris 数据集查看此示例:

# There are no cats in `iris` so it returns a vector of length 0
iris$Species[iris$Species ==  'cat']

factor(0)
Levels: setosa versicolor virginica

这是因为iris$Species == 'cat' 对于所有值都是FALSE,因此不会返回任何值。 table 函数很好地计算了向量中的每个值,我们可以使用它来查看 iris$Species == 'cat' 为我们提供了 150 个 FALSE 值和 0 个 TRUE

table(iris$Species == 'cat')

FALSE 
  150 

【讨论】:

  • 很好而明确的答案。 R 的伟大之处在于您可以轻松地检查代码的中间部分。如果像 iris$Species == 'cat' 一样检查选择的结果,则很明显所有内容都是 FALSE 并且没有选择任何行。 table(iris$Species == 'cat') 也可以用作检查选择的行数的更好方法。
猜你喜欢
  • 2015-03-20
  • 2020-01-07
  • 2018-09-10
  • 2017-05-09
  • 2018-09-25
  • 2011-05-25
  • 2010-11-20
  • 1970-01-01
相关资源
最近更新 更多