楼主: admonzhang
10373 4

[学习分享] 统计软件R-vector和factor的区别和转换(转) [推广有奖]

  • 0关注
  • 6粉丝

已卖:319份资源

讲师

38%

还不是VIP/贵宾

-

威望
0
论坛币
1113 个
通用积分
3.5896
学术水平
1 点
热心指数
3 点
信用等级
0 点
经验
5935 点
帖子
328
精华
0
在线时间
196 小时
注册时间
2012-11-19
最后登录
2019-5-28

楼主
admonzhang 发表于 2013-5-2 10:53:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
vector:一个数组
factor:一个数组,其中包含的类型是固定的几种类型。如果有k种类型,比如a,b,c。。。,;R的内部存储是按照1,2,..,k来存储


a<-c(1,3) # a is a vector
b<-c('f','m') # b is a vector

a1<-factor(a) # change vector a to factor
b1<-factor(b) # change vector a to factor

a<-as.numeric(a1) # !! Doesn't change back, a will be c(1,2) instead of c(1,3)
>a
[1] 1 2 # why? 请回忆R的内部存储方式
a<-as.numeric(as.character(a1)) # 先转换为factor的字符串,然后再转换为数字
>a
[1] 1 3
b<-as.character(b1)

read.table在读入文件的时候,如果文件的某一列都是数字,则会自动判定为vector的数字类型,只要有字符串出现,就会认为

是factor类型,因此当某列存在缺失用"missing"等字符串时,该列会被转换为factor类型,解决方法是对于这类缺失值,指定参数na.strings=c('missing'),或者使用colClasses=c('factor','numeric',...),依次将列转换为你希望的类型,注意numeric强制要求数据中不含字符串。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:factor Vector Facto 统计软件 fact 软件 统计 factor

沙发
jgchen1966 发表于 2013-5-25 18:50:05
谢谢分享
鹑居鷇食,鸟行无彰

藤椅
Soleking 学生认证  发表于 2017-12-1 11:28:52
感谢!

板凳
学管理的喵 发表于 2018-7-5 21:20:16
好东西啊,也是挖坟了。
但是R语言干嘛搞那么麻烦呢?

报纸
KevinPomeranz 发表于 2018-7-6 09:15:05
我觉得很多东西拿中文去学确实绕脑子。
vector是可以用数字的c(1,2,3,4,5),这是一个vector
factor的定义在Hadley Wickham的r4ds里是:In R, factors are used to work with categorical variables, variables that have a fixed and known set of possible values. .... Historically, factors were much easier to work with than characters. As a result, many of the functions in base R automatically convert characters to factors.
很多categorical variables都是factors形式,那比如month_levels <- c("Jan", "Feb", "Mar"....)
这种factors在一个数据文件里可以通过levels(month_levels)来查看他里面所有的categorical value,然后可以根据自己的需求进行修改。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 02:55