全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1114 2
2013-01-04
悬赏 20 个论坛币 未解决
x  group
a        1
a        1
a        2
b        1
b        2
c        1
c        1
c        1
c        1
c        1
d        1
d        1
f        2
f        2
.        tab        x if group==1
                x       Freq.        Percent        Cum.
                                
                a           2        20.00        20.00
                b           1        10.00        30.00
                c           5        50.00        80.00
                d           2        20.00        100.00
                                
                Total          10        100.00
如何根据group=1 中x取值的频率从大到小得到"c a d b f",用于循环。谢谢!
注意f不能漏掉啊

二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-4 13:12:54
xg<- read.table(text="
x  group
a        1
a        1
a        2
b        1
b        2
c        1
c        1
c        1
c        1
c        1
d        1
d        1
f        2
f        2",header=T)
xg1 <- xg$x[xg$group==1];xg1

b <- as.data.frame(table(xg1))
b <- b[order(-b$Freq,b$xg1),]

又回到那个交叉表了。。。想想!
二维码

扫码加我 拉你入群

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

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

2013-1-4 23:04:12
xg<- read.table(text="
x  group
a        1
a        1
a        2
b        1
b        2
c        1
c        1
c        1
c        1
c        1
d        1
d        1
f        2
f        2",header=T)

library("plyr")
xg1 <- ddply(xg, "x", .fun=function(y) nrow(y[y$group==1,]))
xg2 <- xg1[order(-xg1$V1),]
xg2$x

二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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