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

Cha*_*ang 2 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
Run Code Online (Sandbox Code Playgroud)

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

最简单的方法是什么?

MrF*_*ick 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)
)
Run Code Online (Sandbox Code Playgroud)

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

ss<-split(dd, cut(dd$V1, breaks=seq(10,35,by=5)-1)); ss
Run Code Online (Sandbox Code Playgroud)

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