0

三个测量值(时间)嵌套在 Networkpartners (NP) 中,而 Networkpartners (NP) 嵌套在 Persons (ID) 中。变量 NP.T(根据此处提到的答案创建)表示特定人员 (ID) 在特定测量(1 到 3)中的网络合作伙伴数量(结果中没有缺失值)。

这是我的数据集的一个示例,但真实的数据集有数千行。

   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) 每次测量 (NP.T) 网络合作伙伴数量的平均值、SD。

此外,我对在每次测量中至少命名一个网络合作伙伴的人数 (ID) 感兴趣。

T1 -> 2 个 ID,至少有一个 Networkpartner

T2 -> 2 个 ID 至少有一个 NP

T3 -> 2 个 ID 至少有一个 NP

在这个例子中它可能听起来微不足道,但它不在我的示例中。用于计算均值、sds 等。每次我只想考虑那些在那个特定时间实际上至少命名了一个网络合作伙伴的 ID。在该特定时间未命名任何 NP 的 ID 不应成为该时间点的描述性统计数据的一部分。 澄清一下:如果输出变量上有一个 NA ,则表示该 NP 在该时间点尚未由其 ID 命名。

b) 重复测量方差分析以确定网络合作伙伴的平均数量是否随时间变化

一些预期结果:

Mean.T1 = 2 <- 因为两个 ID 在 T1 都命名了两个 NP

Mean.T2 = 1.5 <- 因为一个 ID 在 T2 命名了两个,另一个命名为 NP

Mean.T3 = 1 <- 因为两个 ID 在 T3 都命名了一个 NP

n.T1 = 2

n.T2 = 2

n.T3 = 2

问题是,在真实数据集中,所有人都命名了不同数量的网络合作伙伴,所以我不知道在这种情况下如何计算描述性统计数据。

4

1 回答 1

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 <- 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,请在此处查看详细信息。正如网站中提到的,这个问题不是 RStudio 的问题,而是 Hmisc 库summarize从包“plyr”中屏蔽函数的问题。

因此,您需要添加library(Hmisc)较早的代码。

library(plyr)
library(Hmisc)
    mydata3<-ddply(mydata1,.(Time),summarize,mean=mean(NP.T),sd=sd(NP.T),nobs=length(unique(ID)))
于 2013-08-03T14:39:12.400 回答