R语言的factor是什么含义(1)

首先,c( )是R的一个函数,表示将括号里面的内容连接起来成为一个向量。

例如

先输入

>  y <- c("郭靖", "黄蓉", "老顽童")

再输入

> y

得到的结果是

[1] "郭靖 "黄蓉" "老顽童"

数字型(numeric)、字符型(character)、逻辑型(logical)这几种类型的相量(vector)

输入

>  class(y)

得到

[1] "character"

输入

> y[2]

得到

[1] "黄蓉"


factor的作用是打上标签或者类别

首先建立一个相量(vector)

> sample <- rep(c("CK","TR"), each=5)

其实就是

> sample <- c("CK","CK","CK","CK","CK","TR","TR","TR","TR","TR")

两个结果是一样的。

然后输入

> sample

结果是

[1] "CK" "CK" "CK" "CK" "CK" "TR" "TR" "TR" "TR" "TR"


这只是一个普通数组

然后输入下面

> sample<- factor(sample)

将数组给因子(factor)化,其实就是让向量里面的每个因素成为一个标签

再输入

> sample

得到

 [1] CK CK CK CK CK TR TR TR TR TR
Levels: CK TR

其中Levels是种类

现在用这个标签化向量去给别的数组归类或者叫做打标签

新建一个相量

> value <- rnorm(10)

然后

> value

得到一组随机数


 [1] -0.61044460 -0.11117008  1.03011363 -0.46245676 -1.90394146  0.68187099
 [7] -0.77040024 -2.19241355 -0.08284189 -1.38913903


然后给他们打标签并且给标签取平均值。

> tapply(value, sample, mean)

得到

        CK         TR
-0.4115799 -0.7505847
两个标签分别对应的平均值。

再试一次

新建一个相量

 >value2 <-c(1,2,3,4,5,6,7,8,9,10)

然后

> tapply(value2, sample, mean)

结果是

CK TR
 3  8
其中tapply是分组统计函,数摘抄一段

使用格式为:

tapply(X, INDEX, FUN = NULL, ...,simplify = TRUE)
其中X通常是一向量;INDEX是一个list对象,且该list中的每一个元素都是与X有同样长度的因子;FUN是需要计算的函数;simplify是逻辑变量,若取值为TRUE(默认值),且函数FUN的计算结果总是为一个标量值,那么函数tapply返回一个数组;若取值为FALSE,则函数tapply的返回值为一个list对象。需要注意的是,当第二个参数INDEX不是因子时,函数tapply() 同样有效,因为必要时 R 会用 as.factor()把参数强制转换成因子。

关于factor再举一例

输入

>gender <- factor(c("MALE", "FEMALE", "MALE","MALE"))

>gender

[1] MALE   FEMALE MALE   MALE  
Levels: FEMALE MALE

种类是两个


再一个例子

> blood <- factor(c("O", "AB", "A"),
+                 levels = c("A", "B", "AB", "O"))
> blood
[1] O  AB A
Levels: A B AB O

虽然样本是三种血型,但是种类实际是四种。

  • 17
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值