7

これらは、オンラインで答えを見つけることができなかった R の統計プログラミングに関するいくつかの初心者の質問です。 私のデータフレームは、以下のコードで「eitc」とラベル付けされています。

1)データ フレームを読み込んだら、要約統計を見たいと思います。私は関数を使用しました:

eitc <- read.dta(file="/Users/Documents/eitc.dta")
summary(eitc)
sapply(eitc,mean,na.rm=TRUE) #for sample mean, min, max, etc.

特定の条件が満たされたときに、データフレームの要約統計を見つけるにはどうすればよいですか。たとえば、変数「children」が 1 以上の場合に、すべての変数の要約統計を表示したいと考えています。同等の Stata コードは次のとおりです。

summarize if children >= 1

2)同様に、特定の条件が満たされたときに特定のパラメーターを見つけるにはどうすればよいですか? たとえば、「post93」変数がゼロに等しく、「anykids」変数が 1 に等しい場合、変数「work」の平均を見つけたいとします。同等の Stata コードは次のとおりです。

mean work if post93==0 & anykids==1

3)理想的には、上記の要約統計を実行するときに、計算に含まれるオブザベーションの数/基準に適合する数を調べたいと思います。

4)データ フレームを読み取るときに、データ セットに含まれる観測値の数 (および、欠損値または "NA" が含まれる行の数) を確認することもできます。

5)また、次のコードを使用してダミー変数を作成しています。これは正しい方法ですか、それともより効率的なルートがありますか?

post93.dummy <- as.numeric(eitc$year>1993)
eitc=cbind(eitc,post93.dummy)
4

4 に答える 4

11

あなたの要求の多くはsubset、例えばによって答えられます

summary(subset(eitc, post93 == 0 & anykids == 1, select=work))
nrow(subset(eitc, post93 == 0 & anykids == 1, select=work)) # for number of obs.

?subsetドキュメントには良い例があります。

cbindダミー変数を付ける方法は不要です。ただ行う:

eitc$post93.dummy <- as.numeric(eitc$year>1993) 
于 2011-01-29T08:51:46.357 に答える
6

パッケージに含まれているmtcarsデータを使用します。datasetsを参照してください?mtcars

広告 1.が 3 より大きいmtcars場合の概要を確認できます。gear

summary(mtcars[mtcars$gear > 3, ])
## or by using Tukey's five number summary
sapply(mtcars[mtcars$gear > 3, ], fivenum)

広告 2.用途with:

with(mtcars, mean(hp[gear > 3 & mpg > 20]))

広告 3.同上 (ただし を使用length):

with(mtcars, length(hp[gear > 3 & mpg > 20]))
## or
sapply(mtcars[mtcars$gear > 3, ], length) ## which is trivial when there are no NA's
sapply(mtcars[mtcars$gear > 3, ], length, na.rm = TRUE) ## but this one's good when there are NA's
nrow(mtcars[mtcars$gear > 3, ])

広告 4.前を参照してください。

欠損値または「NA」を含む行の数

次のようにします。

apply(dtf, 1, function(x) length(is.na(x)))

広告 5.これはダミー変数ではありません。これは、列ごとに連結された、元のデータのある種のサブセットです。とにかく何を達成しようとしていますか?

簡潔にしてください。一問一問でお願いします!

于 2011-01-29T10:37:37.930 に答える
2

要約を生成するためにplyrパッケージを確認することをお勧めします。ここにいくつかの簡単なコードがあります (実行されません)。

#Generate a new factor based on the numeric value of children with 5 levels
eitc$childfac<-cut(eitc$children,5)

# Generate mean and sd of the variables foo and bar based on that factor
ddply(eitc, .(childfac), function(df) {
  return(data.frame(meanfoo=mean(df$foo), sdfoo=stdev(df$foo),
    meanbar=mean(df$bar), sdbar=stdev(df$bar))
  })

hmiscおよびpsychパッケージを参照して、より詳細な stat ルーチンを確認することもできます。(詳しくはQuick-Rをご覧ください)

于 2011-01-29T10:54:43.973 に答える
0

data.tableを使用して、データのサブセットの要約統計をすばやく表示する方法を次に示します。

library(data.table)

dt <- data.table(mtcars)

var.names <- c("cyl", "disp", "hp")
dt[mpg > 20, 
   list(name=var.names, N=.N, mean=lapply(.SD, mean), sd=lapply(.SD, sd)), 
   .SDcols=var.names]

model.matrixダミー変数の作成に使用できます。こちらを参照してください。

于 2016-11-07T18:54:35.667 に答える