FAQ

Rによる統計学(入門編)

【回答】

 

置き換えるということができます。少しサンプルコードを書いてみましょう

# まず分かりやすいように適当にデータフレームを作ります。
df <- data.frame(a = as.factor (c(1, 5, 7, 8)),b = c(‘A’, ‘B’, ‘C’, ‘D’), c = c(14, 14, 19, 22),d = c(3, 7, 14, 11))

 

# 内容を確認します。
df

 

# 14となっているところを24に書き換えてみましょう
# こうすると14という部分は3つ(C列とD列)ありますが、3つとも24に置き換わります。
df[df == 14] <- 24

 

# 最初のdfをもう一度コピペして、データフレームを作ってください。
#14を24に置き換えするときに、列を指定できます。ここではC列のみです
df[‘c’][df[‘c’] == 14] <- 24

 

# 最初のdfをもう一度コピペして、データフレームを作ってください。
# 今度は14と19を24に書き換えてみましょう
df[df == 14 | df == 19] <- 24

 

使い方は分かりましたでしょうか。

 

「消す」とおっしゃっていた部分ですが、データフレームは全ての値が入ってないと動きませんので、消すということは難しいです。できてNAに置き換えるとかでしょうか。

【回答】

 

そちらは日本語が文字化けしている状態かと思います。特にMacで見られることが多いようです。

その場合は、たとえば棒グラフなら(引数は省略しています)、ggplot()+geom_bar()としますよね?
この後ろ、+geom_test()+theme_bw(base_family = “HiraKakuProN-W3”)をつけてみてください。
ggplot()+geom_bar()+geom_test()+theme_bw(base_family = “HiraKakuProN-W3”)
とすると文字化けが収まるかもしれません。

 

ただ上記コマンドはもう古くなっていて、動かない可能性もあります。
Googleで「Mac R 文字化け」と調べると設定での変更方法も図入りで示しているサイトもあるので、ご自身のバージョンでも動くかお試しいただければ幸いです。

 

Rにおいては日本語の全角でエラーが出ることがあるため、基本は半角英数を用いた方が良いでしょう。

【回答】

クリップボードからのデータ読み込みエラーですが、同じくこちらもMacだけでときどきみられる「 incomplete final line」のエラーですね。いくつか対処方法がありますので、羅列いたします。


1.まず読み込むデータの数値部分を、セルの書式設定で数値にしっかりしてみてください。


2.「1」でダメだった場合、データの一番下の一行空白になっている行も含めてクリップボードにコピーしてみて読み込みしてみてください。


3.大体はなぜか「2」の空白行込みにしてコピーしたら動くのですが、もし「2」でダメならば、一旦メモ帳に張り付けて、UTF-8に変えてみてください。


4.「3」もダメだった場合は、「3」で作成したテキストを保存して、テキストファイルを読み込む形にし、クリップボードからの読み込みは無理かもしれません。

【回答】

現在のテキストファイルは、ANSIコードになっています。
WinでUTF8か16にもできますが、ANSIで文字化けしているならば、UTFでも恐らく文字化けするかと思います。
Mac側で設定しないとWin側で行うのは難しいです。
こちらにサイトがあります。
https://ameblo.jp/re-freckle/entry-12576531509.html
またはマックのサイトにも説明があります。
https://support.apple.com/ja-jp/guide/textedit/txted1028/mac

 

上述の通り、ご面倒ではありますが、Mac側でご対応いただかないと難しいかもしれません。
一応UTF-16を用意しておきましたので、お送りしますが、恐らく文字化けするかと思いますので、
上述のサイト、またはご面倒ではございますが、ご自身で検索して見やすいサイトを選んでいただき、
Macのテキストエディタのエンコーディングの設定をよろしくお願いいたします。

【回答】

特定の行抽出は、指定する行番号が明確なときには
変数をaとして説明すると

 

#1行目、3列目のデータを抽出
a[1,3]

 

#3行目を抽出
a[3,]

 

#3~5行目を抽出
a[3:5,]

 

このように選ぶこともできます。
またはfilter関数やselect関数などを使用することが多いように思います。

【回答】

 

はい、上書きされます。

【回答】

 

混乱させる表現で申し訳ありません。
おっしゃるとおり、この以下の命令文では合計の棒グラフです。
ggplot(B, aes(x=name, y=data, fill=name))+geom_bar(stat=”identity”)

 

平均にする場合は以下の命令文です。
ggplot(B, aes(x=name, y=data, fill=name))+geom_bar(stat = “summary”, fun = “mean”)
このように変えると合計値の棒グラフが平均値の棒グラフとなりますので、お試しください。

【回答】

 

Rにてスクリプトを保存することはできるが、それは一連の命令文を保存することが可能なだけである。変換の登録機能などはないため、テキストファイルなどに使用する関数をまとめておくと良い。

【回答】

 

恐らく、取り込むデータに問題がある可能性があります。
たとえば「-」半角ハイフンが入っているとか、文字列部分に当たるところに、問題がある可能性があります。

 

そのあたりの文字列を全て単純な半角英字に変えてみたら、エラーはどうなりますでしょうか。

【回答】

 

これは、データの状態が違うからboxplotでは作成できません。
添付のエクセル、右側にあるmとfの列をそれぞれ作ったデータがありますが、こちらならばboxplotで箱ひげ図を作成することができます。
左側のようにmとfが1列になっているときには、ggplotの箱ひげ図で作成するのが早いです。以下のようにするのが早いと思います。
ggplot(変数名, aes(x= 性別, y= 好感度))+geom_boxplot()+stat_summary(fun = “mean”, geom = “point”)
こちらは、xとyが全角であるため、あとで念のため半角にしておいた方がよりエラーが生じづらいと思います。

 

【回答】

 

こちらはとても混乱しやすい部分です。2標本t検定における「n」というのは、おっしゃっているn1だけのn数になります。たとえば、ラベル1のn数が10、ラベル2のn数が10で計20だとしたとき、計算に使うnは10です。したがって、この場合、効果量=t値/sqrt(n/2) では、効果量=t値/sqrt(10/2)となります。
もしラベル1のn数が10で、ラベル2のn数が6のように2標本のn数が一致していないときには、

 

 

ここでの式から変わります。sqrt(n/2)からsqrt((n1✕n2)/(n1+n2))という形になります。
したがって、ラベル1と2のn数が違うときの効果量の求め方は、
効果量=t値/ sqrt((n1✕n2)/(n1+n2))という形になり、おっしゃっているような、n1とn2を使う形になります。