質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

2回答

2291閲覧

[R言語,qcc]process.capabilityのプロット時のタイトル

marutech

総合スコア11

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2017/08/01 05:49

R言語のQCCパッケージにおける質問です。

process.capability関数を用いてヒストグラムをレポーティングしておりますが、
引数にtitleやmainを与えることができず、レポート名が全て"Process Capability Analysis for xxx"となってしまいます。(下記図上部)
この部分につきまして、任意のテキストに変更することが出来るかご教示頂けますでしょうか?

イメージ説明

▼上記ヒストグラム生成時のコード

R

1 q <- qcc(data_list, type="xbar.one", plot=FALSE) 2 process.capability(q, spec.limits=c(mean(data_list) - 3 * sd.xbar.one(data_list, std.dev="SD"), 3 mean(data_list) + 3 * sd.xbar.one(data_list, std.dev="SD")), 4 add.stats=FALSE, 5 restore.par = FALSE 6 )

※qcc関数がtitleを引数に持てるようなので試してみましたが、どうやらprocess.capabilityに渡した段階で上書きされてしまうようでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

先にある回答の通り,ソースコードを見るとtitle はハードコードしてあるので変更できるのは "Process Capability Analysis for xxx" の "xxx" の部分だけのようです.

関数の上書き方法ですが, ここ にあるように, 関数の body 部分だけなら trace() を使って書き換えられるようです(引数は不可).

# 関数を変数に入れる my.process.capability <- process.capability # trace を実行,エディタが開く trace(my.process.capability, edit = TRUE) ## title <- paste("Process Capability Analysis\nfor", object$data.name) の部分を書き換えて,Save # 書き換えた関数を実行 my.process.capability(q, spec.limits=c(73.95,74.05), add.stats=FALSE, restore.par = FALSE)

投稿2017/08/01 14:36

what_alnk

総合スコア147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marutech

2017/08/02 01:46

ご回答ありがとうございます。関数書き換えの具体的な手順はこれから調べようと思っていたので非常に助かりました。参考にさせて頂きます。
guest

0

ベストアンサー

ちょっと面倒な方法になりますが、関数を上書きしてしまえばいちおう可能です。
まずこの関数 process.capability() のコードを下記URLから取ってきます。
https://raw.githubusercontent.com/luca-scr/qcc/master/R/capability.R
このコードの24行目の部分を
title <- paste(object$data.name, "についての工程能力分析")
のように適当に書き換えて、例えば custom.r などとして保存しておきます。

r

1# ライブラリと改変した関数の読み込み 2library(qcc) 3source("custom.r") 4 5# サンプルデータで実行 6data(pistonrings) 7attach(pistonrings) 8diameter <- qcc.groups(diameter, sample) 9q <- qcc(diameter[1:25,], type="xbar", nsigmas=3, plot=FALSE) 10process.capability(q, spec.limits=c(73.95,74.05))

イメージ説明

追記です。titleにobject$data.nameを入れなくても良いなら、上書きする関数のほうではタイトルを空欄にしておいて、この関数を呼んだ後でタイトルだけ書き込む、という方法もありますね。その都度関数にタイトルを書きに戻る必要がないので、こっちのほうが使いやすいかも知れません。

R

1library(qcc) 2 3# タイトル部分を空欄にした関数を読み込み 4# title <- paste("") 5source("custom.r") 6 7# サンプル通り 8data(pistonrings) 9attach(pistonrings) 10diameter <- qcc.groups(diameter, sample) 11q <- qcc(diameter[1:25,], type="xbar", nsigmas=3, plot=FALSE) 12 13# 描画後にタイトルを追記 14process.capability(q, spec.limits=c(73.95,74.05), add.stats=FALSE, restore.par = FALSE) 15title(main="工程能力分析") 16 17# 文字サイズや色をplot()などと同じ要領で変更 18process.capability(q, spec.limits=c(73.95,74.05), add.stats=FALSE, restore.par = FALSE) 19title(main = list("工程能力分析", cex = 1.8, col = "blue", font = 2))

投稿2017/08/01 10:37

編集2017/08/03 08:50
fiwa

総合スコア1192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiwa

2017/08/01 10:43 編集

PDFで出力したものをドローソフトでいじったほうがはやいかも知れませんよ。
marutech

2017/08/02 01:46

迅速なご回答ありがとうございました。関数の書き換えで対応させて頂きます。 また、ドローソフトのご提案もありがとうございました。類似の問題が発生したときこちらの対応も検討するように致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問