【发布时间】:2022-01-06 12:04:54
【问题描述】:
我有一个数据框 (merged_COIN_plink),其中包含 181 个 RSID 编号的列,例如 (rs2807367_G) - (仅显示其中两个的示例)。
| ID | Phenotype | rs2807367_G | rs2807376_A | Event | Survival | PS | RS | WBC |
|---|---|---|---|---|---|---|---|---|
| 001 | -9 | 1 | 0 | 1 | 349 | 2 | 1 | 8.8 |
我正在尝试使用 Rstudio 上的生存包做一个 coxph。我已经设法为每个 RSID 单独执行此操作,但是对于 181,我想知道是否有一种方法可以并行化它或运行它,以便它自动通过每个 RSID。
这是个人 coxph 的代码:
coxph(Surv(merged_COIN_plink$SURVIVAL, merged_COIN_plink$EVENT) ~ rs2807367_G + PS + RS + WBC, data= merged_COIN_plink)
我浏览了其他帖子,但它们似乎都令人困惑。我想知道是否可以使用诸如 RS* 之类的通配符,但我不确定这在 Rstudio 上是否容易做到。我还认为,在 unix 上,您可以列出 RS 编号并通过该列表运行代码以挑选出每个 RSID,但我不知道这在 Rstudio 上是否可行。
我试图从以 RS 开头的列名中列出一个列表,但这似乎无法正常工作:
rs_list <- merged_COIN_plink[grep("^rs",colnames(merged_COIN_plink)),]
View(rs_list)
我也不确定 for 循环是否有效,但无法确定名称不同的列名。
structure(list(ID = c("100002", "100003", "100004", "100005",
"100006", "100007", "100008", "100010", "100011", "100012", "100013",
"100014", "10004", "1002", "1003", "1004", "1005", "1006", "1007",
"1008", "1010", "101001", "101002", "101003", "101004"), PHENOTYPE = c(-9L,
-9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L,
-9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L, -9L), rs2807367_G = c(1L,
0L, 2L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L,
0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L), rs34963268_C = c(1L, 1L, 1L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 2L, 0L, 1L, 0L, 2L,
0L, 0L, 1L, 0L, 0L, 0L), EVENT = c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
0L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L,
1L, 1L), SURVIVAL = c(349L, 384L, 283L, 671L, 674L, 285L, 224L,
687L, 571L, 495L, 510L, 302L, 159L, 44L, 85L, 347L, 604L, 447L,
1230L, 444L, 1260L, 758L, 392L, 379L, 188L), PS = c(2L, 0L, 0L,
0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 2L, 1L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 1L), RS = c(1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 0L,
0L), WBC = c(8.8, 8.1, 9.3, 8.9, 7.2, 6.7, 11.6, 10.7, 6.1, 12.9,
10.1, 9.1, 6.8, 13.3, 13.5, 10.9, 8.7, 11.4, 9.8, 8.9, 8, 11.3,
6, 5.6, 8.8)), row.names = c(NA, 25L), class = "data.frame")
【问题讨论】:
-
您能否为您的数据创建一个可重现的示例?尝试使用
dput(merged_COIN_plink )或仅使用其中的一部分(即dput(merged_COIN_plink[sample_rows, relevant_columns]) -
@jpsmith 当我做
dput(merged_COIN_plink )时,它看起来对您查看不是特别有帮助,因为它显示了表格中的许多值。我尝试了dput(merged_COIN_plink[sample_rows, relevant_columns])使用特定的列号,但它不能正常工作,我也尝试了列名 - 你能提供更多帮助吗,对不起,我是新手。 -
嗨 Amy,当您使用
dput()时,它通常看起来像一长串乱七八糟的东西,这很好(只需复制并粘贴整个structure(...)输出),但对于大数据集,它可能会变得笨拙.根据您当前的问题,尝试使用dput(merged_COIN_plink[1:25, c("ID","Phenotype","rs2807367_G","rs2807376_A","Event","Survival","PS","RS","WBC"))输出前 25 行和相关列 -
嗨,很抱歉花了我这么长时间@jpsmith!我不得不摆弄一些括号:
dput(merged_COIN_plink[1:25, c("ID","PHENOTYPE","rs2807367_G","rs34963268_C","EVENT","SURVIVAL","PS","RS","WBC")])我应该如何给你输出?我要复制粘贴吗? -
艾米,是的,我做了一个没有帮助的打字机!要添加它,您应该编辑您的问题以在末尾附加
structure(...)
标签: r loops parallel-processing