2

私は現在、R (スタジオ) を使用することを学んでいる学生です。このため、タスクを受け取りました。ほとんどランダムに生成されたデータを比較し、これから結論を導き出すことになっています。

しかし、私が抱えている問題は、このデータには5つのレベルの因子があり、一度に1つのレベルでデータを比較したいという事実です...

> str(data)
'data.frame':   275 obs. of  5 variables:  
 $ leverancier        : Factor w/ 5 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...   
 $ las_trekproef      : num  211 375 503 195 221 ...  
 $ las_score          : num  2.6 3.1 4.3 2.6 2.7 3.3 3.9 2.2 2.7 2.7 ...  
 $ afwijking_draaiwerk: num  0.081 0.061 0.015 0.125 0.256 0.004 0.124 0.016 0.042 0.062 ...  
 $ afwijking_freeswerk: num  0.336 0.026 0.032 0.161 0.36 0.447 0.062 0.176 0.317 0.212 ...

私がやりたいことは、各レベルのデータを別の変数に入れて、一度に 1 つのレベルでグラフと箱ひげ図を作成できるようにすることです。

A <- (レベル A のすべてのデータはこちら)

それ以外の:

summary(data)  
 leverancier las_trekproef     las_score     afwijking_draaiwerk afwijking_freeswerk
 A:55        Min.   :128.6   Min.   :2.000   Min.   :0.0000      Min.   :0.0010     
 B:55        1st Qu.:270.6   1st Qu.:2.700   1st Qu.:0.0355      1st Qu.:0.1210     
 C:55        Median :361.0   Median :3.500   Median :0.0760      Median :0.2670     
 D:55        Mean   :356.1   Mean   :3.513   Mean   :0.1268      Mean   :0.3055     
 E:55        3rd Qu.:443.6   3rd Qu.:4.250   3rd Qu.:0.1340      3rd Qu.:0.4255     
             Max.   :571.4   Max.   :5.000   Max.   :1.1390      Max.   :1.3890

前もって感謝します、

NH

4

3 に答える 3

3

あなたは次のような意味です

a <- subset(data, leverancier=='A')

ヘルプが必要な場合は、チェックアウトしてください?subset

于 2012-11-13T18:49:47.323 に答える
2

要因ごとの要約に tapply を使用できます。数式インターフェイスを使用し、x が因子である場合、Boxplot は因子ごとに変数をプロットします。因子をサブセット y にインデックス付けして、単一の箱ひげ図を生成することもできます。ただし、要因に基づいて y を比較するには、レベルを同じプロットにプロットします。下記は用例です。

# Create example data
dat <- data.frame(leverancier=rep(c("A","A","B","B","B","A","C","D","D","C"),100),
                  las_trekproef=runif(1000,100,500),
                  las_score=runif(1000,1,4))

# Use tapply to summarize y by factor                 
tapply(dat$las_score, dat$leverancier, FUN=summary)

# Using formula interface plot y by factor 
boxplot(las_score ~ leverancier, data=dat, notch=TRUE)

# You can also index y based on a factor level to create a single boxplot of y
boxplot(dat[dat$leverancier == "A" ,]$las_score, notch=TRUE)
于 2012-11-13T19:59:57.723 に答える
1

との連携を検討してくださいsplit

split(data, data$leverancier)

listは のを与えdata.frame、それぞれが の 1 つのレベルに対応しますleverancier。次に、一度に各要素を操作するか、リストをループして各部分を順番に操作できます。

これはあなたの質問に直接答えないことを理解しています(Sebの答えはそうです)が、Rでデータを操作するためのより慣用的な方向性を示しているはずです.

于 2012-11-13T21:11:58.367 に答える