я впервые использую R. Я пытаюсь выяснить, как я могу условно объединить имеющиеся у меня данные, которые распределены по пяти файлам .RDS. Я прочитал этот пост о чтении нескольких файлов .RDS , но я не хочу объединять данные; Я хочу перезаписать определенные записи определенными другими записями, сохраняя при этом общую структуру.
Соглашение об именовании файлов данных следует шаблону: fold1.rds, fold2.rds, ..., fold5.rds
Я загружаю каждый файл, используя: foldx = readRDS('foldx.rds
)
Вызов dim(foldx)
возвращает [1] 12 450 4
.
Упрощенный пример того, что я хочу выполнить sh:
fold1 (когда я печатаю переменную) содержит такие значения, как:
tri-a cal-c xali trop
PC3 1.000 1.000 -.0235 1.000
MCF7 -.0548 1.000 1.000 1.000
и одинаковые индексы из данных fold2 содержат:
tri-a cal-c xali trop
PC3 -.078 1.000 1.000 1.000
MCF7 1.000 .0254 1.000 -.015
То есть только один из файлов данных будет иметь запись для индексов [i, j], отличную от 1.0. Значение 1.0 присваивается, когда вычисление не было выполнено.
Я хочу объединить данные из сгибов с 1 по 5 так, чтобы у меня был один файл, в котором каждое вхождение 1.0 заменено на соответствующий не Значение -1.0 из любого файла данных сгиба содержит его.
Так что мой примерный результат будет выглядеть так:
tri-a cal-c xali trop
PC3 -.078 1.000 -.0235 1.000
MCF7 -.0548 .0254 1.000 -.015
Я надеюсь, что это достаточно подробно. Спасибо.
Редактировать:
Приведенный выше пример является упрощением того, что я хочу сделать sh. Данные на самом деле являются многомерными массивами с 12 строками, 450 столбцами и третьим измерением с 4 записями. Когда я вызываю dim
для любого из них, я получаю [1] 12 450 4
.
Например, вызов dimnames(fold1)
возвращает:
[[1]]
[1] "PC3" "MCF7" "A375" "A549" "ASC" "HA1E" "HCC515" "HEPG2" "HT29"
[10] "NPC" "VCAP" "NEU"
[[2]]
[1] "trichostatin-a" "geldanamycin"
[3] "iloprost" "wortmannin"
[5] "calcitriol" "carbacyclin"
[7] "daunorubicin" "tretinoin"
[9] "tamoxifen" "alvespimycin"
[11] "radicicol" "tanespimycin"
[13] "sirolimus" "fulvestrant"
[15] "estradiol" "mitoxantrone"
[17] "genistein" "vorinostat"
[19] "withaferin-a" "sorafenib"
[21] "triflupromazine" "noretynodrel"
[23] "benzonatate" "vemurafenib"
[25] "scopolamine" "brefeldin-a"
[27] "vinblastine" "cyclosporin-a"
[29] "reboxetine" "pinacidil"
[31] "fluticasone" "rimcazole"
[33] "methylergometrine" "nemonapride"
[35] "cromakalim" "cycloheximide"
[37] "clofarabine" "naltrindole"
[39] "tenidap" "cilastatin"
[41] "nisoxetine" "tubocurarine"
[43] "rottlerin" "flunarizine"
[45] "resveratrol" "dinoprostone"
[47] "tetramethylsilane" "danazol"
[49] "aloisine" "risperidone"
[51] "cyclopamine" "thioperamide"
[53] "luzindole" "proxymetacaine"
[55] "pyrrolidine-dithiocarbamate" "halcinonide"
[57] "pseudoephedrine" "caffeic-acid"
[59] "cabergoline" "fusaric-acid"
[61] "anandamide" "piretanide"
[63] "umbelliferone" "xaliproden"
[65] "cuneatin" "spironolactone"
[67] "norethisterone" "mammea-a"
[69] "irilin-a" "graveoline"
[71] "hydrastinine" "melperone"
[73] "ecopipam" "mevastatin"
[75] "pinocembrin" "emodic-acid"
[77] "coumaric-acid" "farnesylthiotriazole"
[79] "dehydroisoandosterone" "lonidamine"
[81] "relcovaptan" "pirfenidone"
[83] "azacyclonol" "cucurbitacin-i"
[85] "cyclopiazonic-acid" "wiskostatin"
[87] "mianserin" "procaterol"
[89] "kynuramine" "triciribine"
[91] "mifepristone" "noscapine"
[93] "yohimbine" "butabindide"
[95] "niguldipine" "bromocriptine"
[97] "vincristine" "monastrol"
[99] "tropisetron" "tropanyl-3,5-dimethylbenzoate"
[101] "bemesetron" "guggulsterone"
[103] "ciglitazone" "rosiglitazone"
[105] "pimozide" "pyrazolanthrone"
[107] "raclopride" "telenzepine"
[109] "minoxidil" "aminopurvalanol-a"
[111] "irinotecan" "desmethylclozapine"
[113] "riluzole" "piceatannol"
[115] "cilostamide" "vanoxerine"
[117] "rotenonic-acid" "glibenclamide"
[119] "clozapine" "kenpaullone"
[121] "zardaverine" "pregnenolone"
[123] "doconexent" "betulinic-acid"
[125] "ketanserin" "arctigenin"
[127] "remoxipride" "pravastatin"
[129] "loperamide" "brimonidine"
[131] "talipexole" "nimesulide"
[133] "osthol" "indolophenanthridine"
[135] "benperidol" "tetramethyl-haematoxylone"
[137] "gliquidone" "carmoxirole"
[139] "olomoucine" "prostaglandin-b2"
[141] "terconazole" "embelin"
[143] "aniracetam" "lisuride"
[145] "ciclacillin" "testosterone"
[147] "nefazodone" "anisomycin"
[149] "zatebradine" "gabazine"
[151] "isocarboxazid" "lamotrigine"
[153] "trapidil" "mead-acid"
[155] "4,5,6,7-tetrabromobenzotriazole" "quercetin"
[157] "dihydroergocristine" "coumestrol"
[159] "beclomethasone-dipropionate" "desoxycortone"
[161] "parthenolide" "formoterol"
[163] "rilmenidine" "puromycin"
[165] "clofibric-acid" "flumetasone"
[167] "verapamil" "methoprene-acid"
[169] "kavain" "hydralazine"
[171] "thenoyltrifluoroacetone" "pirinixic-acid"
[173] "forskolin" "lovastatin"
[175] "phenformin" "propoxycaine"
[177] "nafcillin" "bifemelane"
[179] "ergocornine" "scriptaid"
[181] "skimmianine" "apafant"
[183] "loreclezole" "fenretinide"
[185] "nitrocaramiphen" "fillalbin"
[187] "devazepide" "fluprostenol"
[189] "rimexolone" "tolazamide"
[191] "dipropyl-5ct" "reserpic-acid"
[193] "dextromethorphan" "alpha-linolenic-acid"
[195] "levocabastine" "levonorgestrel"
[197] "ouabain" "hinokitiol"
[199] "denbufylline" "ceforanide"
[201] "clocortolone-pivalate" "seneciphylline"
[203] "malonoben" "fenobam"
[205] "bezafibrate" "quinidine"
[207] "leoidin" "lidoflazine"
[209] "farnesylthioacetic-acid" "norcyclobenzaprine"
[211] "semaxanib" "arecaidine-but-2-ynyl-ester"
[213] "progesterone" "meprylcaine"
[215] "flurofamide" "trap-101"
[217] "flupentixol" "hippeastrine"
[219] "cefixime" "fluvoxamine"
[221] "telmisartan" "moxonidine"
[223] "estrone" "alprenolol"
[225] "nitrendipine" "mebeverine"
[227] "dexamethasone" "trimipramine"
[229] "tenoxicam" "canrenoic-acid"
[231] "rolipram" "estradiol-benzoate"
[233] "brucine" "pioglitazone"
[235] "nimodipine" "budesonide"
[237] "mirtazapine" "etodolac"
[239] "bendroflumethiazide" "bepridil"
[241] "chloroquine" "thalidomide"
[243] "naringenin" "fenoterol"
[245] "piperidolate" "caffeine"
[247] "celecoxib" "penitrem-a"
[249] "epirubicin" "diclofenac"
[251] "apigenin" "fenbufen"
[253] "nocodazole" "cinchonine"
[255] "chloroxine" "amiodarone"
[257] "simvastatin" "flutamide"
[259] "alrestatin" "niclosamide"
[261] "erythromycin-estolate" "loxapine"
[263] "proadifen" "bromhexine"
[265] "tosyl-phenylalanyl-chloromethyl-ketone" "glycocholic-acid"
[267] "spiperone" "chlorprothixene"
[269] "piperine" "dephostatin"
[271] "guanaben-acetate" "dihydrosamidin"
[273] "salicin" "fluvastatin"
[275] "altretamine" "pivmecillinam"
[277] "thiethylperazine" "tacrolimus"
[279] "trazodone" "carbamazepine"
[281] "ergocryptine" "nicergoline"
[283] "fluspirilene" "ricinine"
[285] "methyl-2,5-dihydroxycinnamate" "chlorpromazine"
[287] "amodiaquine" "riboflavin"
[289] "buspirone" "spiramide"
[291] "pifithrin-mu" "droperidol"
[293] "clonidine" "salsolinol"
[295] "warfarin" "tranylcypromine"
[297] "glycodeoxycholic-acid" "lenalidomide"
[299] "oligomycin-a" "olaparib"
[301] "etomoxir" "tivozanib"
[303] "orantinib" "serdemetan"
[305] "15-delta-prostaglandin-j2" "veliparib"
[307] "tozasertib" "rucaparib"
[309] "vecuronium" "raltitrexed"
[311] "mosapride" "voriconazole"
[313] "rifabutin" "epigallocatechin-gallate-(-)"
[315] "docetaxel" "moxifloxacin"
[317] "linezolid" "nelfinavir"
[319] "imatinib" "vinorelbine"
[321] "panobinostat" "alitretinoin"
[323] "antimycin-a" "fludarabine"
[325] "alvocidib" "lapatinib"
[327] "carbetocin" "buthionine-sulfoximine"
[329] "heraclenol" "raltegravir"
[331] "danusertib" "depudecin"
[333] "pyroxamide" "obatoclax"
[335] "enobosarm" "belinostat"
[337] "sitagliptin" "saracatinib"
[339] "cytochalasin-d" "parthenolide-(alternate-stereo)"
[341] "deforolimus" "axitinib"
[343] "tofacitinib" "zibotentan"
[345] "floxuridine" "dasatinib"
[347] "capecitabine" "cilomilast"
[349] "apicidin" "ispinesib"
[351] "epothilone-a" "entinostat"
[353] "decitabine" "andarine"
[355] "tandutinib" "motesanib"
[357] "5-iodotubercidin" "verrucarin-a"
[359] "hydroxycholesterol" "cyclazosin"
[361] "terreic-acid-(-)" "oxalomalic-acid"
[363] "hyperforin" "4-hydroxyretinoic-acid"
[365] "rifampicin" "tenovin-1"
[367] "eicosatetraynoic-acid" "dexrazoxane"
[369] "entecavir" "prostaglandin"
[371] "everolimus" "retinol"
[373] "somatostatin" "mocetinostat"
[375] "aprepitant" "danoprevir"
[377] "chenodeoxycholic-acid" "lithocholic-acid"
[379] "neurodazine" "lestaurtinib"
[381] "farnesol" "androstenol"
[383] "brivanib" "ziprasidone"
[385] "androstenedione" "taurodeoxycholic-acid"
[387] "2-aminopurine" "tamibarotene"
[389] "rivaroxaban" "3,3'-diindolylmethane"
[391] "farnesylcysteine-methyl-ester" "ochratoxin-a"
[393] "torin-1" "deoxycholic-acid"
[395] "cholic-acid" "dexketoprofen"
[397] "tetradecylthioacetic-acid" "tyrphostin-51"
[399] "iloperidone" "canertinib"
[401] "flupirtine" "palbociclib"
[403] "aurora-a-inhibitor-i" "ruxolitinib"
[405] "mirin" "dacinostat"
[407] "epoxycholesterol" "acitretin"
[409] "sphingosine" "gefitinib"
[411] "ebelactone-b" "retinyl-acetate"
[413] "oleoylethanolamide" "torin-2"
[415] "erlotinib" "staurosporine"
[417] "zosuquidar" "masitinib"
[419] "cinacalcet" "pazopanib"
[421] "acetyl-geranygeranyl-cysteine" "isotretinoin"
[423] "calcifediol" "reversine"
[425] "xanthohumol" "crizotinib"
[427] "enzastaurin" "acetyl-farnesyl-cysteine"
[429] "lavendustin-c" "taurocholic-acid"
[431] "nilotinib" "pirarubicin"
[433] "safinamide" "ellipticine"
[435] "cediranib" "lypressin"
[437] "quizartinib" "geranylgeraniol"
[439] "lopinavir" "plinabulin"
[441] "linifanib" "bosutinib"
[443] "sunitinib" "vicriviroc"
[445] "acetyl-geranyl-cysteine" "androstanol"
[447] "teicoplanin" "dopamine"
[449] "azacitidine" "idelalisib"
[[3]]
[1] "corScore" "corCmapScorePos" "corCmapScoreNeg" "corCmapScoreAvg"
Я имел дело с многомерными массивами в Python, но я не уверен, как обращаться с именами в массиве, сохраняя их структуру и перемещая числовые значения. Извините за путаницу.
Редактировать 2: В итоге было решено выполнить итерацию по всем трем измерениям.
fold_all = fold1
dims <- dim(fold1)
for (i in 1:dims[1]) {
for (j in 1:dims[2]) {
for (k in 1:dims[3] ) {
if (fold1[i,j,k] != 1) {
fold_all[i,j,k] = fold1[i,j,k]
} else if (fold2[i,j,k] != 1) {
fold_all[i,j,k] = fold2[i,j,k]
} else if (fold3[i,j,k] != 1) {
fold_all[i,j,k] = fold3[i,j,k]
} else if (fold4[i,j,k] != 1) {
fold_all[i,j,k] = fold4[i,j,k]
} else if (fold5[i,j,k] != 1) {
fold_all[i,j,k] = fold5[i,j,k]
}
}
}
}
saveRDS(fold_all, 'all_folds.rds')
Еще раз спасибо!