首页 > 解决方案 > 在 R 中有一列具有 205550 个值,并且想要 10 列,其中值 1 进入第 1 列,值 2 进入第 2 列等

问题描述

我的数据框目前看起来像这样:

        pred
        0.01
        0.01
        0.01
        0.01
        0.01
        0.01
        0.01
        0.01
        0.01
        0.91

其中有 205550 个值,其中第 1:10 行应适用于观察 1,第 11:20 行应适用于观察 2,依此类推。所以我正在寻找一种方法将数据表变成这样的东西:

       V1    V2      V3      V4     V5     V6     V7     V8     V9     V10
       0.01  0.01    0.01    0.01   0.01   0.01   0.01   0.01   0.01   0.01

如果有人有任何有用的建议,请告诉我。谢谢你。

标签: rmultiple-columnsdata-manipulation

解决方案


这是使用 dplyr 包的稍微不同的解决方案。首先,我制作未来的“行”,然后是未来的列。然后我使用 pivot_wider 函数“旋转”表。

dat<-data.frame(pred=1:10000) 


df1<-dat %>%
  mutate(row=ceiling(row_number()/10)) %>%
  mutate(col=paste0("V",row_number() %%10)) %>%
  pivot_wider(names_from = col, values_from=pred) %>%
  select(-row)

推荐阅读