※ 引述《LouisPion (府城好男儿)》之铭言:
:
: - 问题: 当你想要问问题时,请使用这个类别
:
: [问题类型]:
:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
:
: [软件熟悉度]:
:
: 入门(写过其他程式,只是对语法不熟悉)
:
: [问题叙述]:
: 请简略描述你所要做的事情,或是这个程式的目的
: factor()可以将字串或整数向量弄成因子,
: 而as.factor()告诉R把物件视作因子,我不太清楚二者的差别...
: 具体的问题是,什么时候用factor,什么时候用as.factor?
: 不好意思,请教版上先进~
: [程式范例]:
: y = c(-1, 1, -1, -1, 1)
: names(y) = seq(1, 5, 1)
: factor(y)
: as.factor(y)
: # 不仅显示的结果一样,
: # class(y)、typeof(y)、mode(y)结果也一样
: [关键字]:
:
: 因子、factor、as.factor
:
提供一些小例子 或许有助了解
例如 我手上的观测值分成五大类如下
>Data$Type
[1] TNBC HER2+ Luminal-A Luminal-B Normal
Levels: HER2+ Luminal-A Luminal-B Normal TNBC
如果我依照Type去画Boxplot时
R就会按照levels的顺序(字母排序) 即
HER2+ Luminal A Luminal B Normal TNBC 由左而右画Boxplot
但是因为一些临床上的特性 我需要他的排序是按照
Normal Luminal-A Luminal-B TNBC HER2+ 的类别排列
如果用factor就可以更动level 也可以只取特定的类别的资料
如下
> Data$Type<- factor(Data$Type,
levels=c("Normal","Luminal-A","Luminal-B",
"TNBC","HER2+"))
> Data$Type
[1] TNBC HER2+ Luminal-A Luminal-B Normal
Levels: Normal Luminal-A Luminal-B TNBC HER2+
> Subtype<- factor(Data$Type,
levels=c("Luminal A","Luminal B","TNBC","HER2+"))
> Subtype
[1] TNBC HER2+ Luminal A Luminal B <NA>
Levels: Luminal A Luminal B TNBC HER2+
像这样 资料本身次序没有更动
却可以更改画图以及其他指令等等的次序
也可以只画特定目标
虽然基本却很好用
as.factor()就不能做到了
只能用as.factor() 而不能用factor() 的情况
好像比较少见 我自己印象中不太有