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

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

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

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

Q&A

解決済

2回答

1494閲覧

<R> ハザード比(ggforest)をグループごとに算出することは可能でしょうか?

mourinho384

総合スコア8

R

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

0グッド

0クリップ

投稿2020/12/01 22:57

お世話になっております。

今回はハザード比についてのコーディングお伺いしたいのですが、
このようなグループごとのハザード比を求めたいと考えております。
一つのグループであれば、

R

1ph<- coxph(Surv(Time, event)~SEX+Age+ ….. (+他の共変量) ,data=df) 2summary(ph) 3ggforest(ph)

でできるのですが、どなたか、このグループごとのやり方を実践したことがある人いませんか?
sample code
このlaser : argon /xenonでのグループごとにできないかという考えです。
どなたか、ご教示いただけますと幸いです・・・

R

1library(survival) 2library(survminer) 3survival::diabetic 4ph<- coxph(Surv(time, status)~age+trt+risk, data=survival::diabetic) 5summary(ph) 6ggforest(ph)

イメージはこの画像のように、Group A / Group Bで分けることです。
よろしくお願いいたします。

イメージ説明

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

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

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

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

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

guest

回答2

0

自己解決

require(survival)
require(survminer)
require(tidyverse)
data("diabetic", package = "survival")
fits <- diabetic %>% group_by(laser) %>% nest() %>%
mutate(fit = map(data, ~coxph(Surv(time, status) ~ age + trt + risk, data = .x)))

リストの要素を取りだす

summmary(fits$fit[[1]])

まとめて表示

fits$fit %>% map(summary)

walk2(fits$fit, fits$data, ~print(ggforest(.x, data = .y)))

投稿2020/12/03 15:26

mourinho384

総合スコア8

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

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

0

「グループごとに」何かの計算をしたいならば、tapplyが使えるのではないでしょうか。
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/24.html

投稿2020/12/02 00:52

KojiDoi

総合スコア13671

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

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

mourinho384

2020/12/02 01:08

KojiDoi様 ありがとうございます。 知人からtapplyはどうかとアドバイスをいただいたのですが、tapplyだと一つ目の引数がベクトルでないとだめで、そこで詰まってしまいました・・・ tapply (d$len, d$sp, mean) とかであれば、d$lenの平均(mean)をd$spごとで算出するという形ですが、今回は入れるべきベクトルがなく(”df”に対して、ハザードを求める関数をグループごとに適用)なので・・・
KojiDoi

2020/12/02 01:53

ちょっとおっしゃってることがよく分からないのですが。 ここで取り上げているデータはlibrary(survival)のサンプルデータdiabeticだと思いますが、laserという項がありますよね。それでグループ分けするのではないのですか?
mourinho384

2020/12/03 15:26

そうです!この画像はサンプルになります。 色々行ったりDoiさんのアドバイスからアイデアをいただき自己解決いたしました。 大変ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問