Как объединить несколько файлов .RDS только для определенных значений в каждом файле? - PullRequest
0 голосов
/ 01 апреля 2020

я впервые использую 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')

Еще раз спасибо!

1 Ответ

0 голосов
/ 01 апреля 2020

Предполагается, что вы импортируете каждый файл RDS в качестве кадра данных с соглашением об именах dat_one, dat_two et c. Вы должны быть в состоянии решить вашу проблему с помощью следующего кода. Дайте мне знать, если это работает для вас!

dat_final <- tibble::tribble(
~names,    ~'tri-a',   ~'cal-c',  ~xali,    ~trop,  
'PC3',   1.000,   1.000,  1.000,   1.000, 
'MCF7',  1.000,   1.000,  1.000,   1.000 
)

for (i in 1:nrow(dat_one)){
  for (j in 2:length(dat_one)){
    if (dat_one[i,j] != 1){
      dat_final[i,j] = dat_one[i,j]
    } else if (dat_two[i,j] != 1){
      dat_final[i,j] = dat_two[i,j]
    } else if (dat_three[i,j] != 1){
      dat_final[i,j] = dat_three[i,j]
    } else if (dat_four[i,j] != 1){
      dat_final[i,j] = dat_four[i,j]
    } else if (dat_five[i,j] != 1){
      dat_final[i,j] = dat_five[i,j]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...