目前尚不清楚您想要“另一列的相应值”是什么意思。使用 g (# of groups) 参数很容易完成第一部分:
dfrm$Agrp <- cut2(dfrm$A, g=trunc(length(dfrm$A)/25) )
您可以使用Hmisc 汇总函数或其中一个汇总tapply
Agrp中 B 的平均值或中位数。ave
在今天的问题之一中有几个工作示例:如何按组获取摘要统计信息以及使用这些函数或aggregate
pkg:plyr 函数的许多其他示例。
鉴于 B 值的数量在组之间不一定是恒定的,我认为通过 A-grouped-value 传递单个值的唯一方法是 with split
。我添加了一个额外的行来说明非偶数拆分可能需要返回一个列表而不是一个更“矩形”的对象:
dat <- read.table(text="A B
-10.834510 1.680173
11.012966 1.866603
-16.491415 1.868667
-14.485036 1.900002
2.629104 1.960929
-3.597291 2.005348\n 3.5943 3.796", header=TRUE)
dat$Agrp <- cut2(dat$A, g=trunc(length(dat$A)/3) )
split(dat$B, dat$Agrp)
#-----
$`[-16.49, 2.63)`
[1] 1.680173 1.868667 1.900002 2.005348
$`[ 2.63,11.01]`
[1] 1.866603 1.960929 3.796000
如果您想要进行拆分的值向量,则可以通过使用 regex on 来完成 levels(dat$Agrp)
。