全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3714 6
2014-12-14
在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求出个类别平均值?然后呢?求大神指教下
二维码

扫码加我 拉你入群

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

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

全部回复
2014-12-14 10:18:42
先用tapply,再用merge函数匹配各类别平均值
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

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
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群