0
我有一个包含6个变量(x,y,E,freq,Perc,Rip)的数据框。如何创建设置3个变量的子数据框
library(dplyr)
library(scales)
a<-c(10,20,30,40,50,60,70,80,90,100)
b<-c(15,25,35,45,55,65,75,85,95,105)
x<-rep(a,3)
y<-rep(b,3)
E<-sample(30)
freq<-as.character(rep(c(100,200,300),10))
Perc_Points<- percent(seq(0.9,0.1,by=-0.1))
data<-data.frame(x,y,freq,E)
data1<-group_by(data,freq)
N <- 10
df <- vector("list", N)
df <- lapply(1:N, function(i)
{ lista <- sapply(seq(0.9, 0.1, -0.1),
function(pct) {sample_frac(data1, pct)},
simplify=FALSE)
names(lista) <- Perc_Points
xxxx <- bind_rows(lista, .id = "Perc")
df[[i]] <- xxxx
})
df<-bind_rows(df, .id="Rip")
df<-data.frame(df)
现在我想用df
子dataframes,一个是频率,打击乐和瑞普的每个不同价值的工作。
例如,freq
= 100一个数据帧,Perc
= 90%,Rip
= 1,另一个与freq
= 100,Perc
= 90%,Rip
= 2,等等...
我尝试用group_by(df, Perc, freq, Rip)
,但有一个问题:我必须将krige
函数应用于每个子数据框,并且此函数不适用于grouped_df。 我该怎么做?
能你告诉我如何循环列表元素?我必须应用的函数是: 'nearest = krige(E〜1,df,grid,nmax = 1)', 其中df是每一次singol子数据帧,并且网格是这样的: 'x.range < - range(df $ x) y.range < - range(df $ y) grid < - expand.grid(x = seq(from = x.range [1],to = x.range (网格)< - 〜x + y 网格化(2),= 1),y = seq(from = y.range [1],to = y.range [2],by = 1)) 网格)< - TRUE' – Lince202
你可以做'lapply(lst,function(x)krigeFunc(x $ column name,arg1,....))' – akrun