楼主: kiclee
21082 19

[问答] R如何计算多选题的频次?交叉表 [推广有奖]

11
kiclee 发表于 2013-12-26 21:38:36
对于yywan0913的方法我大概理解了,多谢。
如果是把C3_1到_4放到side上,我试了试,可行(代码如下)。但CRouGD的方法,我还没找到办法,如何转置。也就是结果为:         1 2 3
C3_1 3 0 1
C3_2 2 1 2
C3_3 4 1 2
C3_4 2 1 3


  1. #side和top互换
  2. filepath <- c("E:/DataMulti.csv")
  3. t=read.table(filepath ,sep=",",header=T)
  4. Age=t[,2]
  5. a=unique(Age)
  6. tt=matrix(ncol=length(a),nrow=4)
  7. for(i in 1:length(a)){
  8. tt[,i]=apply(t[Age==a[i],][6:9],2,sum)
  9. }
  10. colnames(tt)=sort(a)
  11. rownames(tt)=colnames(t)[6:9]
  12. tt
复制代码

12
yywan0913 在职认证  发表于 2013-12-27 11:14:27
kiclee 发表于 2013-12-26 21:38
对于yywan0913的方法我大概理解了,多谢。
如果是把C3_1到_4放到side上,我试了试,可行(代码如下)。但C ...
  1. library(reshape)
  2. t=read.table("11.txt",header=T)
  3. data1=t[,c(2,6:9)]
  4. data2=melt(data1,id="Age")
  5. data3=data2[data2[,3]==1,]
  6. table=table(data3[,1:2])
  7. table=t(table)
  8. table
复制代码
是什么给了你自信

13
kiclee 发表于 2013-12-27 12:06:39
哦了,谢谢。刚弄R,有些函数还真不清楚。

14
kiclee 发表于 2013-12-27 12:29:21
yywan0913是程序员出身吗?

15
yywan0913 在职认证  发表于 2013-12-27 13:28:38
kiclee 发表于 2013-12-27 12:29
yywan0913是程序员出身吗?
不是,只是大学的时候学过VB和C++, 然后工作了开始学shell,R和python,最近在整些PHP和html
所以 其实没几样精通的。
是什么给了你自信

16
jacky陈2183 在职认证  学生认证  发表于 2014-1-6 17:42:02

17
shang00122 在职认证  发表于 2015-11-4 09:44:19
真是感谢!

18
shang00122 在职认证  发表于 2015-11-4 10:14:49
用ddply这个也可以:
vars <- c("all","a191","a192","a193","a194","a195")
md<-df[,vars]
md<-melt(md,id=c("all"))
md2<-subset(md,value==1,)
ddply(md,.(variable),summarise,sum=sum(value,na.rm=TRUE),p1=sum/nrow(df),p2=sum/nrow(md2))

19
DAWN1406 发表于 2022-3-2 12:03:54
多选题分析案例以及操作步骤可以参考下文:
https://bbs.pinggu.org/thread-10762005-1-1.html

20
wx2123 在职认证  发表于 2022-3-2 12:14:13
R里面有个函数叫proc_freq() 我觉得你可以试试看。

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

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