R 基于重复观测向量的子集数据

R 基于重复观测向量的子集数据,r,subset,R,Subset,我有以下数据,每个受试者有两个观察结果: SUBJECT <- c(8,8,10,10,11,11,15,15) POSITION <- c("H","L","H","L","H","L","H","L") TIME <- c(90,90,30,30,30,30,90,90) RESPONSE <- c(5.6,5.2,0,0,4.8,4.9,1.2,.9) DATA <- data.frame(SUBJECT,POSITION,TIME,RESPONSE) S

我有以下数据,每个受试者有两个观察结果:

SUBJECT <- c(8,8,10,10,11,11,15,15)
POSITION <- c("H","L","H","L","H","L","H","L")
TIME <- c(90,90,30,30,30,30,90,90)
RESPONSE <- c(5.6,5.2,0,0,4.8,4.9,1.2,.9)

DATA <- data.frame(SUBJECT,POSITION,TIME,RESPONSE)

SUBJECT
merge
是你的朋友:

merge(list(SUBJECT=V), DATA)
#  SUBJECT POSITION TIME RESPONSE
#1       8        H   90      5.6
#2       8        L   90      5.2
#3      10        H   30      0.0
#4      10        L   30      0.0
#5      10        H   30      0.0
#6      10        L   30      0.0

< P> > @法兰克暗示,这种逻辑可以转换为<代码>数据>表>代码>或>代码> DPLYR 或<代码> SQL < /代码>,以处理左边的连接。< /P>如果你在保持相同和V变化的数据引导下,你可能需要考虑DATA表,它快速加入子集,如代码> SEDT(数据);setindex(数据、主题);DATA[(v),on=“SUBJECT”]
@Frank我无法运行您的代码
setindex()
导致以下错误:错误:找不到函数“setindex”。我假设这是
数据表
库的一部分,还是我弄错了?是的,你是对的。如果data.table的版本在一年左右的时间内没有更新,您可能需要使用
set2key
。(更改的函数名为all。)
SUBJECT <- c(8,8,10,10,10,10)
POSITION <- c("H","L","H","L","H","L")
TIME <- c(90,90,30,30,30,30)
RESPONSE <- c(5.6,5.2,0,0,0,0)

OUT <- data.frame(SUBJECT,POSITION,TIME,RESPONSE)
merge(list(SUBJECT=V), DATA)
#  SUBJECT POSITION TIME RESPONSE
#1       8        H   90      5.6
#2       8        L   90      5.2
#3      10        H   30      0.0
#4      10        L   30      0.0
#5      10        H   30      0.0
#6      10        L   30      0.0