我想将一个数据框传递给一个函数,该函数将它分成两半但保留顺序(例如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()
之外我还能使用什么?
答案 0 :(得分:1)
sample
功能的名称可能会让你失望。它适用于随机采样。请尝试rep()
:
split_df <- function(df) {
test <- split(df, rep(1:2,each=length(df)/2))
return(test)
}
答案 1 :(得分:0)
你也可以用非常基本的方式做到这一点
split_df <- function(df) {
df1 <- df[1:ceiling(length(df[ , 1])), ]
df2 <- df[ceiling(length(df[ , 1])):length(df[ , 1]), ]
return(list(df1, df2))
}