R:如何按列值划分数据帧?

时间:2014-05-04 03:09:20

标签: r dataframe

假设我有一个包含3列和10行的数据框,如下所示。

#      V1     V2     V3
#      10     24     92
#      13     73     100
#      25     91     120
#      32     62     95
#      15     43     110
#      28     54     84
#      30     56     71
#      20     82     80
#      23     19     30
#      12     64     89

我想创建子数据帧,将原始值除以V1的值。 例如, 第一个数据框将具有值为10-14的V1的行, 第二个将具有值为15-19的V1的行, 第二次从20-24等等。

最简单的方法是什么?

1 个答案:

答案 0 :(得分:5)

所以如果这是你的数据

dd<-data.frame(
    V1=c(10,13,25,32,15,38,30,20,23,13),
    V2=c(24,73,91,62,43,54,56,82,19,64),
    V3=c(92,100,120,95,110,84,71,80,30,89)
)

然后最简单的拆分方法是使用split()命令。并且由于要分割范围,可以使用cut()命令创建这些范围。可以使用

进行简单的拆分
ss<-split(dd, cut(dd$V1, breaks=seq(10,35,by=5)-1)); ss

split返回一个列表,其中每个项都是子集化的data.frame。因此,要使用10-14的值获取data.frame,请使用ss [[1]],对于15-19,请使用ss [[2]]等。