楼主: Ericabc
8834 3

[问答] 如何根据某一列值的个数选择特定行构成新矩阵 [推广有奖]

  • 1关注
  • 1粉丝

院士

53%

还不是VIP/贵宾

-

威望
0
论坛币
87 个
通用积分
35.8865
学术水平
5 点
热心指数
7 点
信用等级
2 点
经验
207450 点
帖子
226
精华
0
在线时间
7878 小时
注册时间
2007-10-4
最后登录
2026-2-5

楼主
Ericabc 发表于 2014-3-28 23:13:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位朋友,有这样一个矩阵,想把X1的值(如A、C、D等)有5个的,取他们的第3行(即,分别为3,14,19),而把有6个的(如B、E、G)分别取他们的第4行(即,分别为9,25,36),并把取得的所有行存为一个新的矩阵,如何实现,请大家帮帮忙

X1X2X3

1

A

1

0.5

2

A

2

0.6

3

A

3

0.7

4

A

4

0.8

5

A

5

0.9

6

B

1

0.3

7

B

2

0.4

8

B

3

0.5

9

B

4

0.4

10

B

5

0.3

11

B

6

0.7

12

C

1

0.7

13

C

2

0.8

14

C

3

0.9

15

C

4

0.3

16

C

5

0.4

17

D

1

0.7

18

D

2

0.8

19

D

3

0.7

20

D

4

0.8

21

D

5

0.9

22

E

1

0.3

23

E

2

0.4

24

E

3

0.7

25

E

4

0.8

26

E

5

0.9

27

E

6

0.3

28

F

1

0.4

29

F

2

0.7

30

F

3

0.7

31

F

4

0.8

32

F

5

0.9

33

G

1

0.3

34

G

2

0.4

35

G

3

0.5

36

G

4

0.4

37

G

5

0.3

38

G

6

0.3



二维码

扫码加我 拉你入群

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

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

关键词:如何实现 G20 f50 A50 G30 朋友 如何

沙发
nuomin 发表于 2014-3-29 11:20:01
1.按照abcd分成几个矩阵;
2.判断每个矩阵的行数是否等于5、6;
3.根据判断结果取值;

藤椅
danica33 发表于 2014-3-29 15:34:59
就是对A,...,G,取倒数第三行,在R中就是:

  1. x1<-c(rep("A",5),rep("B",6),rep("C",5),rep("D",5),rep("E",6),
  2.    rep("F",5),rep("G",6))
  3. x2<-c(1:5,1:6,1:5,1:5,1:6,1:5,1:6)
  4. x3<-sample(seq(0.1,0.9,0.1),38,rep=T)###随便产生,你自己改回你的数据
  5. data<-cbind(x1,x2,x3)
  6. data<-as.data.frame(data)

  7. tt<-tapply(1:nrow(data),data$x1,tail,n=3)
  8. ind<-sapply(tt,head,n=1)
  9. ans<-data[ind,]
  10. > ans
  11.    x1 x2  x3
  12. 3   A  3 0.3
  13. 9   B  4 0.7
  14. 14  C  3 0.8
  15. 19  D  3 0.7
  16. 25  E  4 0.6
  17. 30  F  3 0.3
  18. 36  G  4 0.2
  19. >
复制代码

已有 1 人评分学术水平 收起 理由
jmpamao + 1 精彩帖子

总评分: 学术水平 + 1   查看全部评分

板凳
Ericabc 发表于 2014-3-29 16:04:30
danica33 发表于 2014-3-29 15:34
就是对A,...,G,取倒数第三行,在R中就是:
非常感谢,比我设想的要简单的多

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-6 07:50