gpt4 book ai didi

r - 通过采用不同的行间隔选择多个子集并将函数应用于所有子集

转载 作者:行者123 更新时间:2023-12-04 19:17:54 24 4
gpt4 key购买 nike

如何通过每第 n 行从数据框中选择 n 个子集
子集1然后第n+1行子集2然后第n+3行子集3直到nth=n

我用过了

subset<-data[seq(nth,length,n),]

但这给出了一个子集,然后我必须不断从 1...n 更改 nth 以获得不同
子集。例如,使用小数据(106 行 x 742 列)设置为每 10 行获取 10 个子集
 subset1<-data[seq(1,106,10),]
subset2<-data[seq(2,106,10),]
subset3<-data[seq(3,106,10),]

有什么办法可以做得更好吗?

从通过常见问题我已经尝试使用循环
sub<-function(data,nth,length,n){
sub<-data[seq(nth,length,n),]
for(n in 1:(sub)){
sub2<-sub[nth,]+1,sub3<-sub[nth,]+2,sub4<-sub[nth,]+3) }
su<-(sub,sub2, sub3,sub4)
return(su)
}
sub(data=gag11p,n=1,length=106,10)

这将返回 3 个数据列表,其中仅包含数据框中的最后一个变量,我不确定我哪里出错了,我如何才能获得名称
子集而不是数据框,因为我想将 PLS 校准函数应用于创建的子集

请原谅并纠正任何错误,因为我现在正在学习编程和 R。

最佳答案

使用 lapply 的单衬借用@Chase 的函数思想。

foo2 = function(data, nSubsets, nSkip){
lapply(1:nSubsets, function(n) data[seq(n, NROW(data), by = nSkip),])
}

foo2(mtcars, 5, 15)

关于r - 通过采用不同的行间隔选择多个子集并将函数应用于所有子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com