三个测量(时间)嵌套在Networkpartners(NP)中,它们嵌套在人员(ID)中。变量NP.T(根据提到的答案here创建)表示特定人(ID)对特定测量(1到3)的Networkpartners(在结果上没有缺失值)的数量。
这是我的数据集的一个例子,真正的数据集虽然有数千行。
ID NP Time Outcome NP.T
1 1 11 1 4 2
2 1 12 1 2 2
3 1 11 2 3 2
4 1 12 2 3 2
5 1 11 3 NA 1
6 1 12 3 3 1
7 2 21 1 2 2
8 2 22 1 4 2
9 2 21 2 NA 1
10 2 22 2 4 1
11 2 21 3 NA 1
12 2 22 3 4 1
我想计算以下内容并且不知道如何正确地做到这一点:
a)每次测量时网络伙伴数量的平均值,SD(NP.T)。
此外,我对每次测量至少命名一个Networkpartner的人数(ID)感兴趣。
T1 - > 2个ID至少命名为一个Networkpartner
T2 - > 2个ID至少命名为一个NP
T3 - > 2个ID至少命名为一个NP
在这个例子中听起来可能微不足道,但它不在我的样本中。用于计算均值,sds ect。每次我只想考虑那个在特定时间实际命名至少一个networkpartner的ID。在该特定时间未指定任何NP的ID不应该是该时间点的描述性统计数据的一部分。 澄清:如果输出变量上有一个NA,则意味着NP在该时间点没有用它的ID命名。
b)重新测量ANOVA以确定网络伙伴的平均数量是否随时间变化一些预期结果:
Mean.T1 = 2< - 因为两个ID在T1
处命名了两个NPMean.T2 = 1.5< - 一个ID命名为2,另一个ID为T2
Mean.T3 = 1< - 因为两个ID在T3处命名了一个NP
n.T1 = 2
n.T2 = 2
n.T3 = 2
问题是,在真实数据集中,所有人都命名了不同数量的Networkpartners,因此我不知道在这种情况下如何计算描述性统计数据。
答案 0 :(得分:1)
A部分(1& 2)
library(plyr)
mydata3<-ddply(mydata1,.(Time),summarize,mean=mean(NP.T),sd=sd(NP.T),nobs=length(unique(ID)))
> mydata3
Time mean sd nobs
1 1 2.0 0.0000000 2
2 2 1.5 0.5773503 2
3 3 1.0 0.0000000 2
B部分:
myaov&lt; - aov(意思是〜时间,数据= mydata3)
> myaov
Call:
aov(formula = mean ~ Time, data = mydata3)
Terms:
Time Residuals
Sum of Squares 0.5 0.0
Deg. of Freedom 1 1
Residual standard error: 1.17148e-16
Estimated effects may be unbalanced
Uodated:对于错误Error in is.list(by) : 'by' is missing
,请查看here了解详情。如网站所述,这个问题不是RStudio的问题,而是Hmisc库从包'plyr'屏蔽函数summarize
的问题。
因此,您需要在早期代码中添加library(Hmisc)
。
library(plyr)
library(Hmisc)
mydata3<-ddply(mydata1,.(Time),summarize,mean=mean(NP.T),sd=sd(NP.T),nobs=length(unique(ID)))