楼主: kongqunyu
10308 14

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

  • 10关注
  • 2粉丝

已卖:91份资源

副教授

37%

还不是VIP/贵宾

-

威望
0
论坛币
2977 个
通用积分
0.4469
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
14732 点
帖子
182
精华
0
在线时间
1274 小时
注册时间
2008-7-16
最后登录
2019-1-7

楼主
kongqunyu 发表于 2015-12-30 15:16:56 |AI写论文
5论坛币
请问如果根据组别group生成a,b两列,谢谢。
group        a        b
a        1        1
a        1        2
a        1        1
b        2        2
b        2        3
b        2        4
b        2        5
c        3        1
c        3        2

最佳答案

寒芒先到 查看完整内容

是不是这样?
关键词:Frame Fram Data FRA RAM

沙发
寒芒先到 发表于 2015-12-30 15:16:57
  1. df<-data.frame(group=c(rep("a",3),rep("b",4),rep("c",2)))
  2. df<-transform(df, a=as.integer(group))
  3. index<-function(x){return(c(1:length(x)))}
  4. df<-transform(df,b=unlist(tapply(a,group,index)))
复制代码

是不是这样?
已有 1 人评分论坛币 收起 理由
admin_kefu + 25 热心帮助其他会员

总评分: 论坛币 + 25   查看全部评分

藤椅
万人往LVR 在职认证  发表于 2015-12-30 15:51:25
data[data$group=='a',]

板凳
kongqunyu 发表于 2015-12-30 16:01:36
万人往LVR 发表于 2015-12-30 15:51
data[data$group=='a',]
原始数据只有group这列,生成a列和b列。

报纸
kongqunyu 发表于 2015-12-30 16:01:38
万人往LVR 发表于 2015-12-30 15:51
data[data$group=='a',]
原始数据只有group这列,生成a列和b列。

地板
kongqunyu 发表于 2015-12-30 16:01:43
万人往LVR 发表于 2015-12-30 15:51
data[data$group=='a',]
原始数据只有group这列,生成a列和b列。

7
ryoeng 在职认证  发表于 2015-12-30 18:38:52
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

8
suimong 发表于 2015-12-30 22:54:27
  1. library(plyr)
  2. library(magrittr)
  3. library(rlist)
  4. df %>%
  5.   mutate(a = unclass(factor(group))) %>%
  6.   dlply("group", .fun = mutate, b = seq_len(length(group))) %>%
  7.   list.stack
复制代码

9
ntsean 发表于 2015-12-30 23:07:40
split(data, data$group)

10
kongqunyu 发表于 2015-12-31 10:17:04
ryoeng 发表于 2015-12-30 18:38
倘若是数据太多的话,建议使用 plyr,dplyr来处理,整洁和简结易看。
其实这个代码我没有看懂~~

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

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