如何在R中重复使用两个向量的数据列表?

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

我有一个有两个向量的列表数据X

X[1]=(1,2,3,5,6,9,7,8)
X[2]=(2,3,4,5,6)

我想获得一个新的列表数据Y

Y[1]=(1,2,3,5,6,9,7,8,1,2,3,5,6,9,7,8)-repeat x[1]
Y[2]=(2,3,4,5,6,2,3,4,5,6)-repeat x[2]

我用Y<-rep(X,2)但得到的是

Y[1]:(1,2,3,5,6,9,7,8)
Y[2]:(2,3,4,5,6)
Y[3]:(1,2,3,5,6,9,7,8)
Y[4]:(2,3,4,5,6)

怎么做才对?非常感谢。

r
1个回答
2
投票

使用 sapplylapply :

sapply(X, rep, 2)

#[[1]]
# [1] 1 2 3 5 6 9 7 8 1 2 3 5 6 9 7 8

#[[2]]
# [1] 2 3 4 5 6 2 3 4 5 6

数据

X <- list(c(1, 2, 3, 5, 6, 9, 7, 8), c(2, 3, 4, 5, 6))

0
投票

您在访问列表元素时遇到了问题--使用 [[1]] 等。

X  <-  list( c(1,2,3,5,6,9,7,8),
            c(2,3,4,5,6))
Y = list(rep(X[[1]], 2),
         rep(X[[2]], 2))
# R > Y
# [[1]]
# [1] 1 2 3 5 6 9 7 8 1 2 3 5 6 9 7 8
# 
# [[2]]
# [1] 2 3 4 5 6 2 3 4 5 6

0
投票

使用 mappurrr

library(purrr)
map(X, rep, 2)

资料

X <- list(c(1, 2, 3, 5, 6, 9, 7, 8), c(2, 3, 4, 5, 6))
© www.soinside.com 2019 - 2024. All rights reserved.