全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2442 1
2014-05-19
1.
> a<-factor(2:4, levels=c("a", "b", "c"))
> a
[1] <NA> <NA> <NA>
Levels: a b c
a为什么不是2 3 4

2.
a<-factor(2:4, labels=c("a", "b", "c"))
as.numeric(a) 得到的结果是1 2 3,如何得到结果是2 3 4 ,不要告诉我答案是as.numeric(a)+1
3.
a<-factor(2:4,levels=c(1,2,3))
a
a<-factor(2:4,levels=c("1","2","3"))
a
a<-factor(2:4, levels=c("a", "b", "c"))
a

有何不同?
二维码

扫码加我 拉你入群

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

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

全部回复
2014-5-19 12:11:41
需要看  factor  的代码。代码不长。

第一个和第三个问题 一回事,  a <- factor(x=2:4, levels=c("a", "b", "c"))
x=as.character(x)   
match(x,levels)
你就可以看其返回值是什么?x 与 levels 相互匹配,没有的就NA


第二个问题  factor 背后有 ordered 排序,
a<-factor(2:4, labels=c("a", "b", "c")) as.numeric(a) 后 就只是 ordered,1,2,3
另外 labels的 后 a  返回的是 "a", "b" 这类的 character,    也没法 as.numeric
如果 a <- factor(2:4, labels=c("2","3","4")) 倒是 可以 as.numeric(levels(a))[a]  或者  as.numeric(as.character(a))

  有补充的吗?
欢迎~~~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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