R 如何计算数据帧中分组值的所需列的内容
我有以下数据框:R 如何计算数据帧中分组值的所需列的内容,r,dplyr,R,Dplyr,我有以下数据框: testdf基因p1p2 #>1 Cbx1椎体脂肪 #>2 Cbx1骨髓脂肪 #>3 Cbx1肝脂肪 #>4 Cbx1肺脂肪 #>5 Cbx1脐脂肪 #>6 Actc1椎骨箭头 #>7 Actc1骨髓肝 #>8 Actc1-骨髓-肺动脉 #>9 Actc1骨骼如图所示 #>10 Actc1骨骼箭头脂肪 我想做的是按基因分组并计算p1的频率。因此: Cbx1 5#脊椎、骨髓、肝、肺、脐 Actc1 1#骨髓 我试过了,但它没有满足我的要求: testdf%>%group\
testdf基因p1p2
#>1 Cbx1椎体脂肪
#>2 Cbx1骨髓脂肪
#>3 Cbx1肝脂肪
#>4 Cbx1肺脂肪
#>5 Cbx1脐脂肪
#>6 Actc1椎骨箭头
#>7 Actc1骨髓肝
#>8 Actc1-骨髓-肺动脉
#>9 Actc1骨骼如图所示
#>10 Actc1骨骼箭头脂肪
我想做的是按基因
分组并计算p1
的频率。因此:
Cbx1 5#脊椎、骨髓、肝、肺、脐
Actc1 1#骨髓
我试过了,但它没有满足我的要求:
testdf%>%group\u by(基因)%>%突变(n=n())
您可以使用n\u distinct
计算唯一值:
testdf %>% group_by(gene) %>% summarise(n = n_distinct(p1))
# A tibble: 2 x 2
# gene n
# <fctr> <int>
#1 Actc1 1
#2 Cbx1 5
testdf%>%分组依据(基因)%>%总结(n=n不同(p1))
#一个tibble:2x2
#基因n
#
#1 Actc1 1
#2 Cbx1 5
您可以使用n\u distinct
计算唯一值:
testdf %>% group_by(gene) %>% summarise(n = n_distinct(p1))
# A tibble: 2 x 2
# gene n
# <fctr> <int>
#1 Actc1 1
#2 Cbx1 5
testdf%>%分组依据(基因)%>%总结(n=n不同(p1))
#一个tibble:2x2
#基因n
#
#1 Actc1 1
#2 Cbx1 5
使用聚合的替代方案
aggregate(p1 ~ gene, testdf, function(x) length(unique(x)))
# gene p1
#1 Actc1 1
#2 Cbx1 5
另一种方法是使用
aggregate
aggregate(p1 ~ gene, testdf, function(x) length(unique(x)))
# gene p1
#1 Actc1 1
#2 Cbx1 5
您也可以使用
tapply
with(testdf,tapply(p1,gene,function(x)length(unique(x))))
Actc1 Cbx1
1 5
您也可以使用
tapply
with(testdf,tapply(p1,gene,function(x)length(unique(x))))
Actc1 Cbx1
1 5