1

私は同様のデータセットを持っています:

val<-c("Y","N")
test<-data.frame(age=rnorm(n=100,mean=50,sd=10),var1=sample(val,100,T),var2=sample(val,100,T),var3=sample(val,100,T),sex=sample(c("F","M"),100,T))

Hmisc を使用して、各カテゴリの平均年齢を報告する概要を作成したいと思います。

library(Hmisc)
summary.formula(age~sex+var1+var2+var3,data=test)

ただし、var1-var3 は実際には、Y/N ではなくレベル var1、var、および var3 を持つ同じカテゴリ変数に属しています。さらに、これらは相互に排他的ではありません。それで、相互に排他的ではなく、タイプするこれらの異なるレベルで変数var4を作成することは何とか可能ですか

summary.formula(age~sex+var4,data=test)

次のような出力があります。

+-------+-+---+----+
|       | |N  |age |
+-------+-+---+----+
|sex    |F| 44|48.0|
|       |M| 56|50.8|
+-------+-+---+----+
|var4   |var1| xx|yy|
|       |var2| xx|yy|
        |var3| xx|yy|
+-------+-+---+----+
|Overall| |100|49.6|
+-------+-+---+----+

どんな助けでも大歓迎です...

4

2 に答える 2

1

どうpaste0ですか?(R2.15 でない場合は paste(..., sep='') )

> test$var4 <- paste0(test$var1, test$var2, test$var3)
> summary.formula(age~sex+var4, data=test)
age    N=100

+-------+---+---+--------+
|       |   |  N|     age|
+-------+---+---+--------+
|    sex|  F| 50|50.25440|
|       |  M| 50|51.32134|
+-------+---+---+--------+
|   var4|NNN| 13|46.64417|
|       |NNY| 17|51.34456|
|       |NYN| 15|52.92185|
|       |NYY| 17|47.35685|
|       |YNN|  9|50.91647|
|       |YNY|  7|48.04489|
|       |YYN| 10|53.23713|
|       |YYY| 12|56.14394|
+-------+---+---+--------+
|Overall|   |100|50.78787|
+-------+---+---+--------+
> 
于 2012-05-04T21:13:53.733 に答える
0

問題は、2 つの異なるデータ セットの統計を結合しようとしていることにあると思います。

  1. 人によって索引付けされたデータ:

    summary.formula(age~sex, test)
    
    # age    N=100
    # 
    # +-------+-+---+--------+
    # |       | |N  |age     |
    # +-------+-+---+--------+
    # |sex    |F| 35|49.99930|
    # |       |M| 65|48.96266|
    # +-------+-+---+--------+
    # |Overall| |100|49.32548|
    # +-------+-+---+--------+
    
  2. 車で索引付けされたデータ

ここでは、車ごとに 1 つの列が必要です。これはデータを作成する1つの方法ですが、もっと良い方法があるはずです:

    var1 <- subset(test, var1 == "Y", c("age", "sex"))
    var2 <- subset(test, var2 == "Y", c("age", "sex"))
    var3 <- subset(test, var3 == "Y", c("age", "sex"))
    var1$var <- "var1"
    var2$var <- "var2"
    var3$var <- "var3"
    vars <- rbind(var1, var2, var3)

次に、要約統計:

    summary.formula(age~var, data=vars)
    # age    N=147
    # 
    # +-------+----+---+--------+
    # |       |    |N  |age     |
    # +-------+----+---+--------+
    # |var    |var1| 47|48.91983|
    # |       |var2| 43|46.31811|
    # |       |var3| 57|49.35292|
    # +-------+----+---+--------+
    # |Overall|    |147|48.32672|
    # +-------+----+---+--------+

ご覧のとおり、2 つの集計のOverallセクションは、2 つの異なるデータ セットからのものであるため、一致しません。(そして、あなたが求めている方法でそれらを組み合わせることはできません。)

于 2012-05-05T12:25:38.847 に答える