我想将一个数据帧传递给一个函数,该函数将它分成两半,但保留顺序(例如,10行df和行1-5在一个返回的df中,第6-10行在另一个返回的df中)。我试图使用函数split() (返回2 dfs的列表,但当我使用sample()时,它会混淆订单。
split_df<- function(df)
{
test = split(df, sample(1:2,length(df)/2))
return(test)
}我在sample()的输入方面有问题。我知道人们在这里问过关于分割数据帧的问题,但由于某些原因,我无法让它工作。除了sample(),我还能用什么?
发布于 2017-02-15 23:23:09
sample函数的名称可能会将您抛出。它适用于随机抽样。试一试rep():
split_df <- function(df) {
test <- split(df, rep(1:2,each=length(df)/2))
return(test)
}发布于 2017-02-16 06:46:43
你也可以用一种非常基本的方式来做。
split_df <- function(df) {
df1 <- df[1:ceiling(length(df[ , 1])), ]
df2 <- df[ceiling(length(df[ , 1])):length(df[ , 1]), ]
return(list(df1, df2))
}https://stackoverflow.com/questions/42261980
复制相似问题