Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 - Fatal编程技术网

在R中按列创建标高计数?

在R中按列创建标高计数?,r,R,我想得到一个矩阵中的等位基因计数,水平为“a”,“T”,“C”,“G”。我希望这是做列明智的,并打印到一个新的数据集。我在R怎么做?我在下面附上了数据集的图片: 由于您的数据不可复制,让我们创建一个兼容的数据集: set.seed(69) m V1 V2 V3 V5 V6 V7 V8 V9 V10 #>1 G C C G C A T A T A #>2 A A C A T G C #>3T T T C G G #>4 C C G G A A A G A #>5gca-gct-act #>6G T

我想得到一个矩阵中的等位基因计数,水平为“a”,“T”,“C”,“G”。我希望这是做列明智的,并打印到一个新的数据集。我在R怎么做?我在下面附上了数据集的图片:


由于您的数据不可复制,让我们创建一个兼容的数据集:

set.seed(69)
m V1 V2 V3 V5 V6 V7 V8 V9 V10
#>1 G C C G C A T A T A
#>2 A A C A T G C
#>3T T T C G G
#>4 C C G G A A A G A
#>5gca-gct-act
#>6G T T A A C A
#>7 A G T G A A A A C A
#>8 T C A G A A T A T
#>9 T T C T C A T G
#>10TCTCTGCA
我们可以得到这样的答案:

t(apply(m, 2, function(x) table(factor(x, levels = c("A", "C", "T", "G")))))
#>     A C T G
#> V1  2 1 4 3
#> V2  1 5 3 1
#> V3  3 3 3 1
#> V4  2 1 4 3
#> V5  2 2 2 4
#> V6  6 2 2 0
#> V7  5 2 2 1
#> V8  5 1 2 2
#> V9  1 4 2 3
#> V10 5 1 2 2

由(v0.3.0)于2020年11月9日创建,我们也可以通过
取消列出数据集并调用
表一次来实现

table(c(col(m)), unlist(m))
-输出

#     A C G T
#  1  2 1 3 4
#  2  1 5 1 3
#  3  3 3 1 3
#  4  2 1 3 4
#  5  2 2 4 2
#  6  6 2 0 2
#  7  5 2 1 2
#  8  5 1 2 2
#  9  1 4 3 2
#  10 5 1 2 2
数据
set.seed(69)

m Maybe:
apply(m,2,table)
?我们尝试过,但每列都有不同的级别-因此V30有A和C,V40有C和G等。您的预期输出应该是什么样的@上面的GKi解决方案似乎适合我。也许您需要
应用(m,2,函数(x)表(因子(x,级别=c(“A”,“c”,“T”,“G”))))
预期输出根据Allan Cameron的评论@GKi解决方案确实有效,但在遗传背景下不起作用
set.seed(69)
m <- as.data.frame(matrix(sample(c("A", "C", "T", "G"), 100, TRUE), nrow = 10))