如何通过重复行数来增加 R 数据框的长度?
如果我们坚信新的数据收集将产生相同类型的数据,那么我们可能希望在 R 中用更多行扩展我们的数据框。虽然,这并不推荐,因为由于这个过程,我们失去了数据的无偏性,但这样做是为了节省在新的数据收集上投入的时间和金钱。在 R 中,我们可以使用 rep 和 seq_len 函数来重复 R 数据框的行数。
示例
考虑以下数据框 -
> x1<-c("Fruits","Vegetables","Dry Fruits","Dairy") > x2<-c(2,5,6,3) > df<-data.frame(x1,x2) > df x1 x2 1 Fruits 2 2 Vegetables 5 3 Dry Fruits 6 4 Dairy 3
重复行数两次,但一次重复跟随另一次 -
> df[rep(seq_len(nrow(df)),times=2),] x1 x2 1 Fruits 2 2 Vegetables 5 3 Dry Fruits 6 4 Dairy 3 1.1 Fruits 2 2.1 Vegetables 5 3.1 Dry Fruits 6 4.1 Dairy 3
重复行数五次,但一次重复跟随另一次 -
> df[rep(seq_len(nrow(df)),times=5),] x1 x2 1 Fruits 2 2 Vegetables 5 3 Dry Fruits 6 4 Dairy 3 1.1 Fruits 2 2.1 Vegetables 5 3.1 Dry Fruits 6 4.1 Dairy 3 1.2 Fruits 2 2.2 Vegetables 5 3.2 Dry Fruits 6 4.2 Dairy 3 1.3 Fruits 2 2.3 Vegetables 5 3.3 Dry Fruits 6 4.3 Dairy 3 1.4 Fruits 2 2.4 Vegetables 5 3.4 Dry Fruits 6 4.4 Dairy 3
重复每一行,次数相同 -
> df[rep(seq_len(nrow(df)),each=5),] x1 x2 1 Fruits 2 1.1 Fruits 2 1.2 Fruits 2 1.3 Fruits 2 1.4 Fruits 2 2 Vegetables 5 2.1 Vegetables 5 2.2 Vegetables 5 2.3 Vegetables 5 2.4 Vegetables 5 3 Dry Fruits 6 3.1 Dry Fruits 6 3.2 Dry Fruits 6 3.3 Dry Fruits 6 3.4 Dry Fruits 6 4 Dairy 3 4.1 Dairy 3 4.2 Dairy 3 4.3 Dairy 3 4.4 Dairy 3
重复行数,次数不同 -
> df[rep(seq_len(nrow(df)),times=c(2,3,4,5)),] x1 x2 1 Fruits 2 1.1 Fruits 2 2 Vegetables 5 2.1 Vegetables 5 2.2 Vegetables 5 3 Dry Fruits 6 3.1 Dry Fruits 6 3.2 Dry Fruits 6 3.3 Dry Fruits 6 4 Dairy 3 4.1 Dairy 3 4.2 Dairy 3 4.3 Dairy 3 4.4 Dairy 3
广告