假设我有一个包含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的行等.
最简单的方法是什么?
所以如果这是你的数据
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]]等.