楼主: kongqunyu
10315 14

[问答] data.frame中增加一列为组别编号 [推广有奖]

11
kongqunyu 发表于 2015-12-31 10:18:51
寒芒先到 发表于 2015-12-30 15:16
是不是这样?
非常好,里面的代码我得再查查都是怎么用的,看教程就是教程上写的,遇到实际问题还是不会。

12
kongqunyu 发表于 2015-12-31 10:19:23
suimong 发表于 2015-12-30 22:54
这段代码我真不是很明白~~~

13
寒芒先到 发表于 2015-12-31 17:01:22
kongqunyu 发表于 2015-12-31 10:18
非常好,里面的代码我得再查查都是怎么用的,看教程就是教程上写的,遇到实际问题还是不会。
第一句就是把你的group数据读到数据框df中,默认group数据是因子,所以a列就是把group转化成数字,第三句定义一个函数,返回x的下标,第四句用tapply分组应用函数index,这样就会分组返回下标了,但用tapply函数出来的是一个list,所以要用unlist把它转化成向量,这样b列就出来了。

14
kongqunyu 发表于 2016-1-1 12:32:45
寒芒先到 发表于 2015-12-31 17:01
第一句就是把你的group数据读到数据框df中,默认group数据是因子,所以a列就是把group转化成数字,第三句 ...
谢谢,在用的时候我发现把group 转化为数字的时候,是按照系统的顺序就行转化的,比如a转化为1,b转化为2,c转化为3,并不区分a,b,c的顺序,如果group的顺序为a,b,c,转化过来就是1,2,3;如果group的顺序是b,c,a,转化为2,3,1。 请问你知道如何按照 自定义的顺序就行转化吗,比如b,c,a的时候也转化为1,2,3?

15
寒芒先到 发表于 2016-1-1 17:08:51
kongqunyu 发表于 2016-1-1 12:32
谢谢,在用的时候我发现把group 转化为数字的时候,是按照系统的顺序就行转化的,比如a转化为1,b转化为2 ...
  1. df<-data.frame(group=factor(c(rep("a",3),rep("b",4),rep("c",2)),levels=c("b","c","a")))
复制代码

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

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