楼主: priss111
12897 6

[问答] 请问如何根据条件对数据框中原有变量重新赋值?谢谢! [推广有奖]

  • 0关注
  • 5粉丝

已卖:9份资源

副教授

16%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
47.5396
学术水平
11 点
热心指数
14 点
信用等级
10 点
经验
14935 点
帖子
472
精华
0
在线时间
808 小时
注册时间
2008-3-30
最后登录
2025-3-17

楼主
priss111 发表于 2011-10-28 17:06:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币


弱弱的问一下:
对数据框data4,
根据下面2个条件即:
if relation==5 or relation==6 then did=0;
if relation==5 or relation==6 then mid=0;
如何写code生成数据框data5?
谢谢!

生成data4的code如下:
  1. bh=1:100
  2. jxh=rep(1:17,c(4,5,6,7,8,4,5,6,7,8,4,5,5,5,6,7,8))
  3. relation=c(0,5,6,10,0,5,6,10,11,0,5,6,10,11,12,0,5,6,10,11,12,13,0,5,6,10,11,12,13,14,
  4.            0,5,6,10,0,5,6,10,11,0,5,6,10,11,12,0,5,6,10,11,12,13,0,5,6,10,11,12,13,14,
  5.            0,5,6,10,0,5,6,10,11,0,5,6,10,11,0,5,6,10,11,0,5,6,10,11,12,0,5,6,10,11,12,13,
  6.            0,5,6,10,11,12,13,14)

  7. nn=length(jxh)  ##nn=100
  8. jx=unique(jxh)  ##jx=17
  9. datajx=data.frame(jxh,relation,bh)

  10. data1=data.frame(datajx[relation==5,])
  11. data2=data.frame(datajx[relation==6,])
  12. data1=data1[,-2]
  13. data2=data2[,-2]
  14. colnames(data1)[2]="did"
  15. colnames(data2)[2]="mid"
  16. data3=merge(datajx,data1,by.x="jxh",by.y="jxh")
  17. data4=merge(data3,data2,by.x="jxh",by.y="jxh")  ###data4=merge(data3,data2,by="jxh")
复制代码


自己写的data5==data.frame(if (data4[relation==5,] | data4[relation==6,]) data4[4,]=0 data4[5,]=0)
提示错误: 意外的符号在"data5=data.frame(if (data4[relation==5,] | data4[relation==6,]) data4[4,]=0 data4"里
二维码

扫码加我 拉你入群

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

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

关键词:数据框 relation unique length ATION 如何

沙发
qoiqpwqr 发表于 2011-10-28 21:57:05
没看懂。这是你的data4,你想怎样生成data5?

> data4
    jxh relation  bh did mid
1     1        0   1   2   3
2     1        5   2   2   3
3     1        6   3   2   3
4     1       10   4   2   3
5     2        0   5   6   7
6     2        5   6   6   7
7     2        6   7   6   7
8     2       10   8   6   7
9     2       11   9   6   7
10    3        0  10  11  12
11    3        5  11  11  12
12    3        6  12  11  12
13    3       10  13  11  12
14    3       11  14  11  12
15    3       12  15  11  12
16    4        0  16  17  18
17    4        5  17  17  18
18    4        6  18  17  18
19    4       10  19  17  18
20    4       11  20  17  18
21    4       12  21  17  18
22    4       13  22  17  18
23    5        0  23  24  25
24    5        5  24  24  25
25    5        6  25  24  25
26    5       10  26  24  25
27    5       11  27  24  25
28    5       12  28  24  25
29    5       13  29  24  25
30    5       14  30  24  25
31    6        0  31  32  33
32    6        5  32  32  33
33    6        6  33  32  33
34    6       10  34  32  33
35    7        0  35  36  37
36    7        5  36  36  37
37    7        6  37  36  37
38    7       10  38  36  37
39    7       11  39  36  37
40    8        0  40  41  42
41    8        5  41  41  42
42    8        6  42  41  42
43    8       10  43  41  42
44    8       11  44  41  42
45    8       12  45  41  42
46    9        0  46  47  48
47    9        5  47  47  48
48    9        6  48  47  48
49    9       10  49  47  48
50    9       11  50  47  48
51    9       12  51  47  48
52    9       13  52  47  48
53   10        0  53  54  55
54   10        5  54  54  55
55   10        6  55  54  55
56   10       10  56  54  55
57   10       11  57  54  55
58   10       12  58  54  55
59   10       13  59  54  55
60   10       14  60  54  55
61   11        0  61  62  63
62   11        5  62  62  63
63   11        6  63  62  63
64   11       10  64  62  63
65   12        0  65  66  67
66   12        5  66  66  67
67   12        6  67  66  67
68   12       10  68  66  67
69   12       11  69  66  67
70   13        0  70  71  72
71   13        5  71  71  72
72   13        6  72  71  72
73   13       10  73  71  72
74   13       11  74  71  72
75   14        0  75  76  77
76   14        5  76  76  77
77   14        6  77  76  77
78   14       10  78  76  77
79   14       11  79  76  77
80   15        0  80  81  82

藤椅
priss111 发表于 2011-10-28 22:37:23
qoiqpwqr 发表于 2011-10-28 21:57
没看懂。这是你的data4,你想怎样生成data5?

> data4
##以data5的前15行为例
##data5的前15行或者jxh=1:3的个体,
凡jxh号相同(实际上即便jxh不同,只要relation=5或者6时,did&mid均为0),
若relation=5或者6时,
did&mid均为0,
did&mid原有的数值保持不变.
    jxh relation  bh did mid
1     1        0   1   2   3
2     1        5   2   0   0
3     1        6   3   0   0
4     1       10   4   2   3
5     2        0   5   6   7
6     2        5   6   0   0
7     2        6   7   0   0
8     2       10   8   6   7
9     2       11   9   6   7
10    3        0  10  11  12
11    3        5  11  0  0
12    3        6  12  0  0
13    3       10  13  11  12
14    3       11  14  11  12
15    3       12  15  11  12

板凳
qoiqpwqr 发表于 2011-10-29 00:09:08
  1. data5 <- data4
  2. data5[(relation == 5) | (relation == 6), 4:5] <- 0
复制代码

报纸
priss111 发表于 2011-10-29 08:29:44
qoiqpwqr 发表于 2011-10-29 00:09
谢谢!

运行了,
实现了,
又是方括号...

地板
qoiqpwqr 发表于 2011-10-29 11:43:53
priss111 发表于 2011-10-29 08:29
谢谢!

运行了,
多用习惯就好了。

7
priss111 发表于 2011-10-29 15:26:21
qoiqpwqr 发表于 2011-10-29 11:43
多用习惯就好了。
:)
tks!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-11 01:06