Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何计算数据帧中分组值的所需列的内容_R_Dplyr - Fatal编程技术网

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