我是R用户,我正在尝试在R中重写一些二手SPSS代码。有人能给我一个关于这段代码实现的基本概念吗?:
AGGREG OUTFILE=*
/BREAK = subj task cond
/lat wind inwind primehit primefa =
mean(lat wind inwind primehit primefa)
/Ntrials = n.
一些背景信息是subj
,task
,cond
,lat
,wind
,inwind
,primhit
, primefa
是我正在使用的数据集中的所有变量。
答案 0 :(得分:2)
这是R中的样子:
#subj, task, cond, lat, wind, inwind, primhit, primefa
#Creating some fake data for you to aggregate by
df<-data.frame(subj=c(rep(1,10),rep(2,10),rep(3,10)),
task=rep(c(rep("A",5),rep("B",5)),3),
cond=rep(rep(c(rep(T,3),rep(F,2)),2),3),
lat=rnorm(30,100,20),wind=rnorm(30,10,10),inwind=rnorm(30,5,1),
primhit=rnorm(30,5000,75),primefa=rnorm(30,200,30))
aggregate(df[,-c(1:3)],by=list(df$subj,df$task,df$cond),FUN="mean")
(截断的)输出应该与此类似(由于rnorm会有所不同):
Group.1 Group.2 Group.3 lat wind inwind primhit primefa
1 1 A FALSE 102.96070 5.637264 5.213994 5043.498 213.3119
2 2 A FALSE 114.91123 11.161194 5.004008 5055.676 221.1172
....
11 2 B TRUE 97.04035 6.450370 4.755714 5113.725 196.4184
12 3 B TRUE 114.92453 12.888350 4.667839 5022.614 199.3125
基本上,SPSS代码执行相同的操作,其中/ BREAK是BY列表,第三行是重新定义变量以取得给定主题,任务和条件的均值。 / Ntrials给出了给定组的病例数。您可以执行aggregate(df[,1)],by=list(df$subj,df$task,df$cond),FUN="length")
。
如果您需要查找SPSS内容,我建议使用ats.ucla.edu(http://www.ats.ucla.edu/stat/spss/seminars/spss_syntax08/default08_part2.htm)。他们有一些最全面的教程。