假设我有一个包含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等等。
最简单的方法是什么?
答案 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]]等。