我试图找到在具有各自pvalue的样本中发现独特基因的次数
df1 <- read.table(text="
Gene id Seg.mean pValue CNA
Nfib 8410 0.3108 1.381913 gain
Mycl 8410 2.7320 1.182842 gain
Mycl 8410 2.7320 1.846275 gain
Nfib 8411 0.5920 1.381913 gain
Nfib 8411 1.3090 1.381913 gain
Mycl 8412 1.6150 5.765442 gain
Mycl 8411 1.6150 1.846275 gain
",header=TRUE)
预期产出
Gene ID Freq. of id pValue
Nfib 8410,8411 2 1.381913
Mycl 8410,8411,8412 3 1.182842,1.846275,5.765442
答案 0 :(得分:2)
library(dplyr)
df1 %>%
group_by(Gene) %>%
summarise(ID = paste0(unique(id), collapse=", "),
pval = paste0(unique(pValue),collapse=", "),
n = n_distinct(id))
Gene ID pval n
1 Mycl 8410, 8412, 8411 1.182842, 1.846275, 5.765442 3
2 Nfib 8410, 8411 1.381913 2
Gene
(分析单位),group_by(Gene)
。 paste0(var,collapse=", ")
的新变量。这是应用 per Gene
。 Gene
。 答案 1 :(得分:1)
我认为您可以使用data.table来非常接近您想要实现的结果:
library(data.table)
df1<-data.table(df1)
df1[,
list(ID = paste(unique(id), collapse=','),
"Freq. of id"=length(unique(id)),
pValue=paste(unique(pValue), collapse=",")),
keyby=list(Gene)]
答案 2 :(得分:1)
library(plyr)
> ddply(data.frame(df1), .(Gene), summarise,ID=paste(unique(id), collapse=","),pValue=paste(unique(pValue), collapse=","),Freq = length(unique(id)))
Gene ID pValue Freq
1 Mycl 8410,8412,8411 1.182842,1.846275,5.765442 3
2 Nfib 8410,8411 1.381913 2