使用Lappy对dataframe进行采样,包括新列和重新排序列

使用Lappy对dataframe进行采样,包括新列和重新排序列,r,dplyr,lapply,R,Dplyr,Lapply,最终结果应该是如下所示的数据帧列表: time=seq(samples_size[i],1) 并且使用dplyrPackage???是,并且不需要dplyr: list_of_df <- lapply(samples_size,function(i)df %>% slice(1:i)) 例如,第一个元素是 lapply(samples_size, function(i) cbind(time = i:1, df[1:i, ])) 正如我在评论中所说,lappy逐个获取sampl

最终结果应该是如下所示的数据帧列表:

time=seq(samples_size[i],1)

并且使用
dplyr
Package???

是,并且不需要
dplyr

list_of_df <- lapply(samples_size,function(i)df %>% slice(1:i))
例如,第一个元素是

lapply(samples_size, function(i) cbind(time = i:1, df[1:i, ]))

正如我在评论中所说,
lappy
逐个获取
sample\u size
的元素,在这种情况下,它们被称为
I
,手动定义的匿名函数构造某种结果。然后所有结果返回一个列表(与sapply相反,sapply试图将结果合并到一个向量)。所以这个
time
列就是
i:1
,这是一个写
seq(i,1)
的短方法,
cbind
代表一个列,这就是你要找的,通过把
time=i:1
放在每个中间结果的第一列。最后,
df[1:i,]
给出了
df
的第一行
i
,在本例中,它是
切片的一个简单的base R类似物

!我必须深入研究拉普拉函数。谢谢你,朱利叶斯Vainora@Laura,在每个步骤中,
lappy
samples\u size
中提取一个元素,您可以对其执行任何操作。最后,最终结果是这些中间结果的列表。因此,在尝试在每一步中使用dplyr之前,我想说学习base R(
cbind
I:1
,等等)确实是一个好主意,而不仅仅是
lappy
list_of_df[[1]]<-cbind(list_of_df[[1]],seq(samples_size[1],1))

list_of_df[[1]]<-cbind(list_of_df[[2]],seq(samples_size[2],1))

list_of_df[[1]]<-cbind(list_of_df[[3]],seq(samples_size[3],1))

list_of_df[[1]]<-cbind(list_of_df[[4]],seq(samples_size[4],1))
list_of_df <- lapply(samples_size,function(i)df %>% slice(1:i))
lapply(samples_size, function(i) cbind(time = i:1, df[1:i, ]))
# [[1]]
#   time BBAS3
# 1    9 22.85
# 2    8 22.78
# 3    7 22.80
# 4    6 22.22
# 5    5 22.51
# 6    4 21.11
# 7    3 20.84
# 8    2 20.79
# 9    1 20.67