楼主: sangaj
3740 6

[问答] 学渣 请教 条件筛选问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

49%

还不是VIP/贵宾

-

威望
0
论坛币
36 个
通用积分
0.9900
学术水平
5 点
热心指数
5 点
信用等级
10 点
经验
1988 点
帖子
51
精华
0
在线时间
76 小时
注册时间
2013-6-10
最后登录
2016-11-23

楼主
sangaj 发表于 2014-12-14 06:06:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在R中,我有这样一组数据a=c(1,2,3,4,1,2,3,4) b=c(5,10,14,26,67,15,20.35), 大概这样子,然后比如这两列合成一个matrix或者data frame df=cbind(a,b)a列算是类别,b列就是具体数值,那么我现在对于每个大于等于该类别平均数的赋值为1,反之0,结果就是应该b列变成(0,0,0,0,1,1,1,1)这样子,怎么做比较好呢? 先tapply求出个类别平均值?然后呢?求大神指教下
二维码

扫码加我 拉你入群

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

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

关键词:条件筛选 matrix Frame apply Data frame matrix 平均数 平均值

沙发
李会超 发表于 2014-12-14 10:18:42 来自手机
先用tapply,再用merge函数匹配各类别平均值

藤椅
sangaj 发表于 2014-12-14 20:30:53
李会超 发表于 2014-12-14 10:18
先用tapply,再用merge函数匹配各类别平均值
tapply 出来的是array 中间是不是应该还有一步赋值变量名进去,然后再用merge?那这变量名怎么赋呢? 比如1那列是area,数值那列是population

板凳
sangaj 发表于 2014-12-14 21:01:58
李会超 发表于 2014-12-14 10:18
先用tapply,再用merge函数匹配各类别平均值
我用dataframe再用name,她说我长度不对,用dataframe会把原来tapply赋值的变量名一起带进去的

报纸
李会超 发表于 2014-12-14 21:15:33
假如有这样一个数据框
  a b
1 a 1
2 b 2
3 a 3

比如e是tapply之后的结果
a b
4 2

g<-as.data.frame(e)
得到
  e
a 4
b 2
g$ee<-rownames(g)
rownames(g)<-NULL
得到
    e ee
1  4  a
2  2  b
再用merge

地板
sangaj 发表于 2014-12-14 21:40:33
李会超 发表于 2014-12-14 21:15
假如有这样一个数据框
  a b
1 a 1
  恩,谢谢大师,成功了,原来是再加一列,然后把原来那列再删了,谢谢

7
sangaj 发表于 2014-12-14 21:40:36
李会超 发表于 2014-12-14 21:15
假如有这样一个数据框
  a b
1 a 1
  恩,谢谢大师,成功了,原来是再加一列,然后把原来那列再删了,谢谢

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

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