R:将项目粘贴到向量中并将它们分组为 x 的倍数,并用空格分隔

问题描述 投票:0回答:1

如果我有以下包含一些数据的向量,例如

a <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)

假设我想将这 20 个值按照排列顺序分为 4 个,就像这样

[1] "1\n2\n3\n4" "5\n6\n7\n8" "9\n10\n11\n12" "13\n14\n15\n16" "17\n18\n19\n20"

我该怎么做?我从

paste
函数开始,但我被困住了 :( 我假设它会涉及一个 for 循环。

paste(a)
r grouping paste
1个回答
0
投票

拆分并应用函数,使用

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" 
© www.soinside.com 2019 - 2024. All rights reserved.