全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
10304 4
2013-05-02
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强制要求数据中不含字符串。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-5-25 18:50:05
谢谢分享
二维码

扫码加我 拉你入群

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

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

2017-12-1 11:28:52
感谢!
二维码

扫码加我 拉你入群

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

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

2018-7-5 21:20:16
好东西啊,也是挖坟了。
但是R语言干嘛搞那么麻烦呢?
二维码

扫码加我 拉你入群

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

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

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,然后可以根据自己的需求进行修改。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群