Цикл 100x, получить имена строк из фрейма данных A и каждый раз добавлять в качестве столбца в новый фрейм данных B, заканчивая 100 столбцами в B

Я хочу выполнить 100-кратный цикл, получить имена строк из a dataframe A и добавить его rownames в качестве значений в в новый dataframe B каждый раз, заканчивая 100 столбцов в B. Я бьюсь головой о стену здесь, пытаясь сделать это, поскольку я, кажется, перезаписываю B каждый раз, когда пробовал.

     data <- bs.exp.sorted.1198.input
     outsft = dataframe
     outsamps = dataframe 
     samples<- data.frame(matrix(0, nrow = 60, ncol = 1))
     currentsamps =dataframe 
     itnumb=100 

    for(i in 1:itnumb){
    subsamp <- data[sample(nrow(data), 60), ]

    powers =c(c(1:10), seq(from=12,to=20,by=2))
    sft =pickSoftThreshold(bs.exp.sorted.1198.input, powerVector = powers, verbose=5)


    outsft <- rbind(outsft, sft$fitIndices[,2])

    currentsamps <- as.data.frame(rownames(subsamp))
    output <- add_column(samples, currentsamps)

    }

вывод всегда содержит столбец 0 (который я должен был включить, чтобы заставить его работать... И каким бы ни был последний набор имен строк в цикле. Я хочу сохранить ВСЕ имена строк в одном большом фрейме данных. Это должен быть простой задание, но оно поставило меня в тупик и в ярости. Есть предложения? Спасибо.


person Zoidberg_OuuuO    schedule 31.03.2020    source источник
comment
Является ли data.frame A единственным входным объектом, который у вас есть?   -  person Francesco Grossetti    schedule 31.03.2020


Ответы (1)


Как насчет этого:

initial_rows = 100
initial_df = data.frame( col1 = rnorm( initial_rows ),  
                         row.names = 1:initial_rows )
stores_names = rownames( initial_df )

chunk_size = 10
n_repetitions = 10
result = data.frame( matrix( NA_character_, 
                             nrow = chunk_size, ncol = n_repetitions ) )

for ( i_rep in seq_len(n_repetitions) ) {

  current_names = sample( stores_names, chunk_size ) 
  result[ , i_rep ] = current_names

}

> result
   X1  X2 X3 X4 X5 X6 X7 X8 X9 X10
1  72  62 24 35 80 48  6 79 17  96
2  66   4 59 39 32 67 95 96 89  26
3  34  21 96 75 22 87  8 49 98  50
4  40  33 74 90 39  2 86 78 15   3
5  87  12 70 72 62 98 69  4  1  32
6  98  43  7 38 18 57 83 47 35  41
7  28  70  6 84 30  4 54 46  4  35
8  94 100 80 36 84  7 56 36 73   9
9  60  88 28 11 73 32  3 23 85  67
10 69  69 68 69  4 17 60 63 62  47

Это то, что вы хотели?

person Francesco Grossetti    schedule 31.03.2020
comment
Это именно то, что мне было нужно! Спасибо! Какое облегчение. - person Zoidberg_OuuuO; 31.03.2020
comment
@Zoidberg_OuuuO Я рад, что все получилось. Один совет, не используйте оскорбительные выражения, даже если я сочувствую разочарованию. - person Francesco Grossetti; 31.03.2020