楼主: kongqunyu
2228 7

[问答] 根据组别编号1,2,3…… [推广有奖]

  • 10关注
  • 2粉丝

已卖:91份资源

副教授

37%

还不是VIP/贵宾

-

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

楼主
kongqunyu 发表于 2015-9-21 15:13:09 |AI写论文
5论坛币

1

1

1

2

1

3

2

1

2

2

2

3

2

4

2

5

2

6

3

1

4

1

4

2

5

1

5

2

5

3

5

4

5

5

5

6

6

1

6

2

请问如何由第一列生成第二列,谢谢。
关键词:如何

回帖推荐

jinkelazzz 发表于5楼  查看完整内容

> x x [1] 1 1 1 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4 > tbx y for(i in 1:length(tbx)) + { + tmp

沙发
飞行员 发表于 2015-9-21 15:13:10
  1. a <- c(rep(1,3),rep(2,6),rep(3,5),rep(4,4))
  2. b <- tapply(a, a, FUN=function(x) 1:length(x))
  3. c <- cbind(a, unlist(b))
复制代码

藤椅
李会超 发表于 2015-9-21 17:30:21
写个循环 ,大概这样的写法for(i in 1:n){ifelse(a[i,2]==a[i-1,2],1,a[i-1,2]+1)}

板凳
jinkelazzz 发表于 2015-9-22 07:43:32
没看出啥规律啊

报纸
kongqunyu 发表于 2015-9-22 10:04:38
jinkelazzz 发表于 2015-9-22 07:43
没看出啥规律啊
第一列是1的时候,有n行,第二列就分别用1,2,3,4,……,n。
第二列是2的时候,有a行,第二列就分别用1,2,3……a。有几行就编号几,依次类推。

地板
jinkelazzz 发表于 2015-9-22 10:29:02
> x<-c(rep(1,3),rep(2,6),rep(3,5),rep(4,4))
> x
[1] 1 1 1 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4
> tbx<-as.numeric(table(as.factor(x)))
> y<-NULL
> for(i in 1:length(tbx))
+ {
+   tmp<-1:tbx[i]
+   y<-c(y,tmp)
+ }
> z<-cbind(x,y)
> z
      x y
[1,] 1 1
[2,] 1 2
[3,] 1 3
[4,] 2 1
[5,] 2 2
[6,] 2 3
[7,] 2 4
[8,] 2 5
[9,] 2 6
[10,] 3 1
[11,] 3 2
[12,] 3 3
[13,] 3 4
[14,] 3 5
[15,] 4 1
[16,] 4 2
[17,] 4 3
[18,] 4 4

7
kongqunyu 发表于 2015-9-22 10:44:45
jinkelazzz 发表于 2015-9-22 10:29
> x x
[1] 1 1 1 2 2 2 2 2 2 3 3 3 3 3 4 4 4 4
> tbx y for(i in 1:length(tbx))
谢谢 帮了大忙。

8
kongqunyu 发表于 2015-9-22 22:27:57
飞行员 发表于 2015-9-21 15:13
这个更好了,这个是向量化思路,R的思路,谢谢。

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

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