楼主: xiangweinn
1470 4

[问答] 数组运算 [推广有奖]

  • 1关注
  • 28粉丝

已卖:524份资源

副教授

52%

还不是VIP/贵宾

-

威望
0
论坛币
9009 个
通用积分
0.6000
学术水平
32 点
热心指数
58 点
信用等级
25 点
经验
34409 点
帖子
531
精华
1
在线时间
634 小时
注册时间
2010-11-14
最后登录
2023-7-18

楼主
xiangweinn 发表于 2011-11-6 21:48:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题:将下面的 data2 中变量 sex,race,cigs 对应的列的值分别用 data1 中的变量 Sex, smoke , age 的值替换,比如
替换后 data2后面的变量sex的值应该依次为 FFFFFF (1的个数)、MM(2的个数)...... 该用什么命令,请高手指教.

data1
   ID Sex Smoke   Age
1   1   F     N   Mid
2   2   M     N   Old
3   3   F     Y   Old
4   4   F     N Young

data2
    Doctor Sex  Race Cigs Advised
1        1   F AfrAm  Low       1
2        1   F AfrAm  Med       1
3        1   M AfrAm High       1
4        1   M AfrAm  Med       0
5        1   F AfrAm  Low       0
6        1   F AfrAm High       0
7        2   F AfrAm  Med       1
8        2   F AfrAm  Low       0
9        3   F AfrAm  Med       0
10       3   F AfrAm  Med       0
11       3   F AfrAm  Low       0
12       3   F White High       0
13       4   F White  Low       1
14       4   F AfrAm  Low       1


二维码

扫码加我 拉你入群

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

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

关键词:Advise doctor White Smoke Young

沙发
qoiqpwqr 发表于 2011-11-7 00:01:04
没看懂你的题目。

藤椅
zhangyangsmith 发表于 2011-11-7 06:16:31
Is this what you want?
  1. > data1 <- data.frame(ID = c(1:4), Sex = c("F", "M", "F", "F"), Smoke = c("N", "N", "Y", "N"), Age = c("Mid", "Old", "Old", "Young"))
  2. > data1
  3.   ID Sex Smoke   Age
  4. 1  1   F     N   Mid
  5. 2  2   M     N   Old
  6. 3  3   F     Y   Old
  7. 4  4   F     N Young
  8. > data2 <- data.frame(Doctor = c(rep(1, 6), rep(2, 2), rep(3, 4), rep(4, 2)), Sex = c(rep("F", 2), rep("M", 2), rep("F", 10)), Race = c(rep("AfrAm", 11), rep("White", 2), "AfrAm"), Cigs = c("Low", "Med", "High", "Med", "Low", "High", "Med", "Low", "Med", "Med", "Low", "High", "Low", "Low"), Advised = c(rep(1, 3), rep(0, 3), 1, rep(0, 5), rep(1, 2)))
  9. > data2
  10.    Doctor Sex  Race Cigs Advised
  11. 1       1   F AfrAm  Low       1
  12. 2       1   F AfrAm  Med       1
  13. 3       1   M AfrAm High       1
  14. 4       1   M AfrAm  Med       0
  15. 5       1   F AfrAm  Low       0
  16. 6       1   F AfrAm High       0
  17. 7       2   F AfrAm  Med       1
  18. 8       2   F AfrAm  Low       0
  19. 9       3   F AfrAm  Med       0
  20. 10      3   F AfrAm  Med       0
  21. 11      3   F AfrAm  Low       0
  22. 12      3   F White High       0
  23. 13      4   F White  Low       1
  24. 14      4   F AfrAm  Low       1
  25. > data3 <- merge(data1, data2[, -2], by.x = "ID", by.y = "Doctor")
  26. > data3
  27.    ID Sex Smoke   Age  Race Cigs Advised
  28. 1   1   F     N   Mid AfrAm  Low       1
  29. 2   1   F     N   Mid AfrAm  Med       1
  30. 3   1   F     N   Mid AfrAm High       1
  31. 4   1   F     N   Mid AfrAm  Med       0
  32. 5   1   F     N   Mid AfrAm  Low       0
  33. 6   1   F     N   Mid AfrAm High       0
  34. 7   2   M     N   Old AfrAm  Med       1
  35. 8   2   M     N   Old AfrAm  Low       0
  36. 9   3   F     Y   Old AfrAm  Med       0
  37. 10  3   F     Y   Old AfrAm  Med       0
  38. 11  3   F     Y   Old AfrAm  Low       0
  39. 12  3   F     Y   Old White High       0
  40. 13  4   F     N Young White  Low       1
  41. 14  4   F     N Young AfrAm  Low       1
复制代码

板凳
trier2006 发表于 2011-11-7 09:39:59
与其替换,不同重新读取了。
最好的医生是自己,最好的药物是时间……

报纸
xiangweinn 发表于 2011-11-7 13:04:38
谢谢,我要的就是“zhangyangsmith”的做法,我也是用merge函数,但是我是先将data1中的id取名为Doctor
在按照by=Doctor来做的,麻烦一些。

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

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