R split是否始终对生成的数据帧进行内部排序

R split是否始终对生成的数据帧进行内部排序,r,R,我只是想知道是否可以确定split()总是对结果进行排序? 排序的规则是什么? 这个例子很有效,但我在帮助页面中没有找到相应的行。对不起,如果我误读了帮助 dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac = c(2,1)) split(dat.exmpl, dat.exmpl$fac) dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac=rep(c("

我只是想知道是否可以确定split()总是对结果进行排序? 排序的规则是什么? 这个例子很有效,但我在帮助页面中没有找到相应的行。对不起,如果我误读了帮助

 dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac = c(2,1))
 split(dat.exmpl, dat.exmpl$fac)
 dat.exmpl <- data.frame(cbind(a=11:20, b=rep(3,10)), fac=rep(c("blueb","bluea")))
 split(dat.exmpl, dat.exmpl$fac)

dat.exmpl拆分的排序顺序是分组变量的因子顺序。因此,如果分组变量是一个因子,那么该因子的级别将保持不变

例如:修改数据,使
fac
具有
c(“blue”、“bluea”)


谢谢你的回答。然而,您能否更详细地解释“分组变量的因子顺序”的含义?split()是否在内部强制分组变量为因子?正常的排序顺序是什么?对于数字变量,这是显而易见的,但对于字符,我不确定为什么它在“bluea”之前排序为“blueb”。它真的按照字符串排序吗?如果分组变量已经是factor,那么
split
不会进行任何排序。在我的示例中,
blueb
bluea
之前,因为这就是我定义因子水平的方式,也就是说,这就是我示例的要点。总之:
split
不进行任何排序。如果排序似乎正在发生,那是因为
factor()
处理因子级别的方式(通常按字典顺序排序)。有关更多详细信息,请参阅
?factor
的帮助,特别是
levels
参数。感谢您的澄清。但是,我的意思是,如果不使用因子,则对split进行排序(如我最初的示例中所示)。split将分组变量内部强制为排序发生的因子,对吗?
dat.exmpl <- data.frame(
  a=11:20, 
  b=rep(3,10), 
  fac=factor(rep(c("blueb","bluea")), levels=c("blueb","bluea"))
)
split(dat.exmpl, dat.exmpl$fac)
$blueb
   a b   fac
1 11 3 blueb
3 13 3 blueb
5 15 3 blueb
7 17 3 blueb
9 19 3 blueb

$bluea
    a b   fac
2  12 3 bluea
4  14 3 bluea
6  16 3 bluea
8  18 3 bluea
10 20 3 bluea