1
私は12374行(遺伝子)と785列(セル)でかなり大きいdata.frameを持っています。 rowMeans
に従って行を20個のビンにグループ化したいと思います。各ビン内で、同様の平均発現を有する遺伝子と比較しても発現値が非常に変動するアウトライアー遺伝子を同定するために、そのビン内のすべての遺伝子の分散尺度(分散/平均)をz-正規化したい。次に、各ビンから有意に変動する遺伝子を同定するために、zスコア閾値1.7を超える遺伝子を抽出することを望む。私はこれを行うが、ビンの数(私はあることを考えるもの)に関連したエラーに実行するためにdplyr
を使用しようとしてきましたビン行と各ビンごとに分散と戻り値を計算する
> head(temp[,1:5])
Cell1 Cell2 Cell3 Cell4 Cell5
0610007P14RIK 0.1439444 0.0000000 0.000000 0.8759335 0.0000000
0610009B22RIK 0.0000000 0.6776718 0.000000 0.0000000 0.0000000
0610009O20RIK 0.1439444 0.0000000 0.000000 0.2735741 0.0000000
0610010B08RIK 1.4769893 1.1369215 1.124842 0.8759335 1.9544187
0610010F05RIK 0.7944809 0.0000000 0.000000 0.7016789 0.9144108
0610010K14RIK 0.1439444 0.0000000 1.124842 0.7016789 0.0000000
:
私のデータは次のようになります。これは私の試みです:
library(dplyr)
library(genefilter)
n_bins = 20
temp = data
temp$dispersion = rowMeans(temp)/rowVars(temp)
outscore = temp %>% mutate(bin=ntile(dispersion,n_bins)) %>%
group_by(bin) %>% mutate(zscore=scale(dispersion),outlier=abs(zscore)>1.7)
返されるエラーがrror: dims [product 619] do not match the length of object [618]