簡體   English   中英

使用 tidyverse 函數 pivot_wider 時出錯

[英]Error in using tidyverse function pivot_wider

[在此處輸入圖像描述][1]親愛的,我有一個非常大的文件(14,566,680 條記錄),其中包含 2 個變量(ID 和 A)。 第一個變量 (ID) 是個體 (n=258),每個個體有 56,460 條記錄 (A)

我想寫出一個“轉置”文件(即 258 行和 54460 列)。

當我執行以下代碼時:

system.time(snp1 %>% 
  #filter(`Sample ID`=='8362974') %>% 
  select(`Sample ID`,A) %>% 
  mutate(id = row_number()) %>% 
  #head(n=nsnp) %>% 
  pivot_wider(names_from=id,
              values_from = A)->T)

我收到以下錯誤:

Error in rep_len(NA_integer_, n) : invalid 'length.out' value
In addition: Warning message:
In nrow * ncol : NAs produced by integer overflow
Timing stopped at: 28.73 0.62 29.36

如果我只使用 1 個 ID,它可以正常工作

最佳斯特凡諾

如果在計算 row_number(記錄 ID)之前按個人對記錄進行分組,它是否有效?

# made up sample
df <- tibble(`Sample ID` = rep(1:258, each = 56460)) %>%
  mutate(A = rnorm(nrow(.)))

df %>%
  group_by(`Sample ID`) %>%
  mutate(id = row_number()) %>%
  pivot_wider(names_from=id,
              values_from = A)

# A tibble: 258 x 56,461
# Groups:   Sample ID [258]
   `Sample ID`    `1`    `2`     `3`     `4`      `5`     `6`    `7`
         <int>  <dbl>  <dbl>   <dbl>   <dbl>    <dbl>   <dbl>  <dbl>
 1           1  1.49   0.546  0.0517 -0.480  -0.500    0.266  -1.52 
 2           2 -0.391 -0.855 -1.28   -0.0277 -0.999    0.617  -0.415
 3           3  0.200  0.484  1.08   -0.568   1.16     1.75   -0.143
 4           4  0.212  0.371  0.674   0.0481 -1.09    -1.07    0.160
 5           5  0.409  1.54   0.931  -0.280   1.27     0.0447  0.426
 6           6 -0.936  0.903 -0.0408  0.590  -1.52    -1.14   -0.600
 7           7 -1.97   0.336 -0.233   0.488   0.995   -0.933  -1.90 
 8           8 -0.396  2.12   1.10    0.304   0.290    0.595  -1.32 
 9           9 -1.31  -0.124 -0.804  -0.447   1.12    -0.721   0.378
10          10  0.977  0.818  1.51   -0.258  -0.00794  0.0386  2.03 
# ... with 248 more rows, and 56,453 more variables: ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM