数据框中的数据组中的行和标签行R
问题描述:
我需要对R中的数据集中的每个x个观察值(行)进行分组和标记。
我需要知道数据集中最后一组行的数目是否小于x观测值数据框中的数据组中的行和标签行R
例如: 如果我使用一个包含10个观察值和2个变量的数据集,并且我想按每3行进行分组。 我想添加一个新列,这样的数据集是这样的:
speed dist newcol
4 2 1
4 10 1
7 4 1
7 22 2
8 16 2
9 10 2
10 18 3
10 26 3
10 34 3
11 17 4
答
假设你的数据是df
你可以做
df$newcol = rep(1:ceiling(nrow(df)/3), each = 3)[1:nrow(df)]
+1
是的!谢谢!虽然在最终分组中不到3的时候没有通知。你会知道如何让它回来吗? – user4824195
+0
它保持由'rep'函数形成的向量的第一个'nrow(df)'。 –
答
df$group <- rep(1:(nrow(df)/3), each = 3)
这工作,如果行数是确切的倍数3.每三行将得到序列号的标签。
一个快速肮脏的方式来解决,不知道最后一组是如何不完整的简单检查的问题时nrow是模数由组大小划分依然存在:nrow(df) %% 3 #change the divisor to your group size
我不明白你想要什么,请给我们一些输入数据,你只是想要:'df $ group grrgrrbla
@grrgrrbla,如果'data.frame'行数不能被“3”分割。一个正确的解决方案是'rep(1:ceiling(nrow(df)/ 3),每个= 3)[1:nrow(df)]' –
我知道,这不是解决方案,但我没有输入数据甚至不明白他想要什么,所以我试图通过给出一个非常简单的解决方案来获得更多信息,并询问这是否是方向 – grrgrrbla