f******9 发帖数: 267 | 1 有个含有100个column的table called geno,我想找到在每个column出现频率最多的
genotype (AA,TT,CC,GG),我写
了一个function,但是只能一个一个column地找,不能一次性得到100个数,我尝试用
了for (i in 1:100),但是不
work,不知哪儿出了问题,还有其它更简便的方法吗?谢谢!
> max<-function(i){
AA<-geno[,i][geno[,i]=="A/A"]
TT<-geno[,i][geno[,i]=="T/T"]
CC<-geno[,i][geno[,i]=="C/C"]
GG<-geno[,i][geno[,i]=="G/G"]
length<-c(length(AA),length(TT),length(CC),length(GG))
which.max(length)->w
return(w)
} | c*****m 发帖数: 4817 | 2 1 "A/A" 是什么意思?为什么不是AA?
2 function名字最好不要用max,这种已经存在的函数名字 | t**i 发帖数: 688 | 3 apply(geno, 2, function(cvec)
{
names(table(cvec))[which.max(table(cvec))]
}) | f******9 发帖数: 267 | 4 A/A 和 AA 没啥本质区别,就是在每个column找到最多的一种,然后有100个column,
怎么样一次性就把这100个找出
来?thx
【在 c*****m 的大作中提到】 : 1 "A/A" 是什么意思?为什么不是AA? : 2 function名字最好不要用max,这种已经存在的函数名字
| t**i 发帖数: 688 | | D******n 发帖数: 2836 | 6 you should list couple of lines of your data.
【在 f******9 的大作中提到】 : A/A 和 AA 没啥本质区别,就是在每个column找到最多的一种,然后有100个column, : 怎么样一次性就把这100个找出 : 来?thx
| t**i 发帖数: 688 | 7 I thought I have solved it, didn't I?
【在 D******n 的大作中提到】 : you should list couple of lines of your data.
| D******n 发帖数: 2836 | | f******9 发帖数: 267 | 9 This code has solved my problem. tosi, thank you very much!
【在 t**i 的大作中提到】 : apply(geno, 2, function(cvec) : { : names(table(cvec))[which.max(table(cvec))] : })
| c*******o 发帖数: 8869 | 10 很惊艳啊, 不过楼主想要的是AA, CC, GG, TT的频率, 你的这个把AT, CA 这样的杂
合体也算进来了, 怎样在function里加个条件呢, 凡是基因型里第一和第二个字母不
一样的就不统计?
【在 t**i 的大作中提到】 : apply(geno, 2, function(cvec) : { : names(table(cvec))[which.max(table(cvec))] : })
| t**i 发帖数: 688 | 11 apply(geno, 2, function(cvec)
{
names(table(cvec[cvec%in%c("AA","TT","CC","GG")]))[which.max(table(cvec[cvec%in%c("AA","TT","CC","GG")]))]
})
【在 c*******o 的大作中提到】 : 很惊艳啊, 不过楼主想要的是AA, CC, GG, TT的频率, 你的这个把AT, CA 这样的杂 : 合体也算进来了, 怎样在function里加个条件呢, 凡是基因型里第一和第二个字母不 : 一样的就不统计?
|
|