私は最近STATA + ExcelからRに移行しました。効率的なコードを書いてくれたら助かります。私はSOに投稿する前に答えを研究するために最善を尽くしました。だから、ここで私がやったことだ条件付きフィルタリングと要約R
mydata<-data.frame(sassign$buyer,sassign$purch,sassign$total_)
str(mydata)
'data.frame': 50000 obs. of 3 variables:
$ sassign.buyer : Factor w/ 2 levels "no","yes": 1 1 1 1 1 2 1 1 2 1 ...
$ sassign.purch : num 10 3 2 1 1 1 1 11 11 1 ...
$ sassign.total_: num 357 138 172 272 149 113 15 238 418 123 ...
head(mydata)
sassign.buyer sassign.purch sassign.total_
1 no 10 357
2 no 3 138
3 no 2 172
4 no 1 272
5 no 1 149
6 yes 1 113
私の目標は、購入> 1.
の#と買い手の平均数を見つけることです:
はここのように私のデータがどのように見えるかだ
方法1:ロングメソッド
library(psych)
check<-as.numeric(mydata$sassign.buyer)-1
myd<-cbind(mydata,check)
abcd<-psych::describe(myd[myd$sassign.purch>1,])
abcd$mean[4]
私が得た出力は0.1031536697であり、正しいです。
@Sathish:ここではチェックがどのように見えるかです:
head(check)
0 0 0 0 0 1
これが私の目的を解決しました。
この方法の長所:簡単で、通常は初心者レベルです。 短所:多すぎる - 余分な変数(チェック)が必要です。さらに、私はこの方法が嫌いです。それはあまりにも厄介です。
質問:デフォルトでは、オプション(数字= 10)が設定されていても、関数の精度は高くなりません。私はパイプや関数呼び出しを試してみました dplyr使用:私は0.1031536697
方法2を得た
abcd$mean[4]
実行したときにそれだけだ
psych::describe(myd[myd$sassign.purch>1,])
vars n mean sd median trimmed mad min max range skew
sassign.buyer* 1 34880 1.10 0.30 1 1.00 0.00 1 2 1 2.61
sassign.purch 2 34880 5.14 3.48 4 4.73 2.97 2 12 10 0.65
sassign.total_ 3 34880 227.40 101.12 228 226.13 112.68 30 479 449 0.09
check 4 34880 0.10 0.30 0 0.00 0.00 0 1 1 2.61
kurtosis se
sassign.buyer* 4.81 0.00
sassign.purch -1.05 0.02
sassign.total_ -0.72 0.54
check 4.81 0.00
:たとえば、ここで私はランニングからもらったものです私はついに諦めました。
方法2 | Try1: 心理::記述(dplyr ::フィルタ(MYDATA、MYDATA $ sassign.purch> 1)、dplyr ::のmutate(as.numeric(MYDATA $ sassign.buyer)-1)])
出力:
Error in UseMethod("mutate_") :
no applicable method for 'mutate_' applied to an object of class "c('double', 'numeric')"
方法2 | Try2:使用パイプ:
mydata %>% mutate(newcol = as.numeric(sassign.buyer)-1) %>% dplyr::filter(sassign.purch>1) %>% summarise(meanpurch = mean(newcol))
はこれが仕事をした、と私はmeanpurch = 0.1031537を得ました。しかし、私は試してみるのがまだ分かりません。
これはなぜ機能していないのでしょうか?
[この投稿を再現可能にする](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を試してください。 – shayaa
Shayaa - 私はコードを編集しました。これが今再現可能であることを願っています。私に教えてください... – watchtower
Sathish、あなたの返事をありがとう。私はhead(チェック)の出力を投稿しました。ご質問がある場合はお知らせください。 – watchtower