如何解决根据列值将数据框分为20组
我对R相当陌生,找不到解决问题的简便方法。
我在R中有一个名为df
的数据框,看起来像这样。它包含一个名为values
的列,该列包含从0到1的数字顺序编号;以及一个名为flag
的二进制列,其中包含0或1。
df
value flag
0.033 0
0.139 0
0.452 1
0.532 0
0.687 1
0.993 1
我希望将此数据帧从0分为1的X组。例如,如果我希望进行4分割,则数据将从0-0.25、0.25-0.5、0.5-0.75、0.75-1分割。该数据还将包含到该点的相应标志。
我希望解决方案具有可伸缩性,因此,如果我希望将其分成更多的组,则可以。我也仅限于tidyverse软件包。
有人对此有解决方案吗?谢谢
解决方法
如果n
是分区数:
L = seq(1,n)/n
GroupedList = lapply(L,function(x){
df[(df$value < x) & (df$value > (x-(1/n))),]
})
我认为这应该产生一个数据框列表,其中每个数据框都包含您所要求的内容。
,您可以使用cut
将数据划分为n
组,并在split
中使用它以获取数据帧列表。
n <- 4
list_df <- split(df,cut(df$value,breaks = n))
如果要将0-1之间的数据分成n
组,可以执行以下操作:
list_df <- split(df,seq(0,1,length.out = n + 1)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。