R 独特特征频率
我试图找到一个独特的基因在样本中被发现的次数及其各自的pvalueR 独特特征频率,r,R,我试图找到一个独特的基因在样本中被发现的次数及其各自的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 M
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)
我认为您可以使用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)]
库(data.table)
df1sol'n:
结果:
细分:
我们希望对基因(分析单位)进行评估,因此按(基因)
分组李>
然后创建与paste0(var,collapse=“,”)
相对应的新变量。这是根据基因应用的李>
计算不同ID的数量。根据基因
再次应用李>
@托斯皮格,是的。这将使我们更好地了解数据。如果有多个p值和ID,您希望它们位于数据帧的同一行、同一列还是跨多个列?@tospig..不同的列就可以了
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)]
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
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