如果我有以下包含一些数据的向量,例如
a <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
Run Code Online (Sandbox Code Playgroud)
假设我想将这 20 个值按照排列顺序分为 4 个,如下所示
[1] "1\n2\n3\n4" "5\n6\n7\n8" "9\n10\n11\n12" "13\n14\n15\n16" "17\n18\n19\n20"
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?我从这个函数开始paste,但我被困住了:(我假设它会涉及一个 for 循环。
paste(a)
Run Code Online (Sandbox Code Playgroud)
拆分并应用一个函数,使用tapply一些整数除法 ( %/%) 进行分组:
tapply(a, (seq_along(a) - 1) %/% 4, FUN=paste, collapse="\n")
## 0 1 2 3 4
## "1\n2\n3\n4" "5\n6\n7\n8" "9\n10\n11\n12" "13\n14\n15\n16" "17\n18\n19\n20"
Run Code Online (Sandbox Code Playgroud)
这适用于任何大小的分割,并且还可以在组大小没有整齐划分的情况下处理最后的溢出:
a <- 1:10
tapply(a, (seq_along(a) - 1) %/% 4, FUN=paste, collapse="\n")
## 0 1 2
##"1\n2\n3\n4" "5\n6\n7\n8" "9\n10"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |