r - 如何实现提取/分离功能(来自 dplyr 和 tidyr)以将一列分成多列。基于任意值?
问题描述
我有一个专栏:
Y = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
我想根据列值的位置拆分为多个列。例如,我想:
Y1=c(1,2,3,4,5)
Y2=c(6,7,8,9,10)
Y3=c(11,12,13,14,15)
Y4=c(16,17,18,19,20)
由于我正在使用大数据时间序列集,因此根据一个时间段的长度,划分将是任意的。
解决方案
您可以使用 basesplit
将此向量拆分为每个 5 项长的向量。您还可以使用变量来存储此间隔长度。
使用rep
witheach = 5
并以编程方式创建一个序列,可以得到一个由数字 1、2、... 组成的序列,长度不超过 5(在本例中为 4),每个序列连续 5 次。然后split
返回向量列表。
值得注意的是,各种 SO 帖子会建议您将类似的数据存储在诸如此类的列表中,而不是创建多个变量,因此我将其保留为列表形式。
Y <- 1:20
breaks <- rep(1:(length(Y) / 5), each = 5)
split(Y, breaks)
#> $`1`
#> [1] 1 2 3 4 5
#>
#> $`2`
#> [1] 6 7 8 9 10
#>
#> $`3`
#> [1] 11 12 13 14 15
#>
#> $`4`
#> [1] 16 17 18 19 20
由reprex 包(v0.2.1)于 2019 年 2 月 12 日创建
推荐阅读
- c# - Trim() 和 Replace(" ", "") 不删除 C# 中的空格
- actionscript-3 - 为什么构建 ANE 需要 Android Studio / Eclipse?
- java - 如何使用咖啡因 getAll()?
- asynchronous - 在 Neovim 中运行异步 Lua 函数
- php - PHP LDAP 错误 - 无法联系 LDAP 服务器
- node.js - https Nodejs:如何检查 POST https 请求的状态?
- typescript - TypeScript:如何显示所有类型成员而不是高阶类型
- r - 如何使用向量作为列引用粘贴到 data.table 中?
- praw - PRAW:Reddit API 返回 403 Forbidden
- react-native - React-Native 中的新屏幕直到安装后一天才在真实设备上加载