将向量转换为3个元素的列表的函数

时间:2018-10-18 04:52:16

标签: r

我写了一个简单的函数,得到了愿望输出,但得到了警告。任何人请提出最佳答案。

df <- c(1,2,3,4,5,6,7)
df
# [1] 1 2 3 4 5 6 7



transvector <- function (x) {
       if (length(x)%%3 == 0) {
         len = floor(length(x)/3)
       } else {
         len = floor(length(x)/3) +1
       }
         out <-  split(x, rep(1:len, each=3))
         return(out)
      }


 list <- transvector(df)
  

警告信息:        在split.default(x,rep(1:len,每个= 3))中:        数据长度不是分割变量的倍数

期望答案

list
# $`1`
# [1] 1 2 3

# $`2`
# [1] 4 5 6

# $`3`
# [1] 7

desire函数应该是通用的,并且对所有可能的长度向量都有效

0 个答案:

没有答案