У меня есть две матрицы. «порядок» - это матрица с порядком, в котором я хочу, чтобы данные в (где 1 - это события, а нули - не-события). Каждая строка дает порядок для каждой записи. Тем не менее, я не хочу здесь 1 или 0, я хочу значение, A или B или что-то еще.R: отображает значения одной матрицы на порядок другой матрицы
orders <- structure(c("1", "1", "1", "1", "1", "1", "0", "1", "0", "0",
"0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0",
"1", "1", "1", "0", "0", "0", "0", "0", "1", "0", "0", "0", "1",
"0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0"), .Dim = c(6L,
8L), .Dimnames = list(c("1", "2", "3", "4", "5", "6"), c("1",
"2", "3", "4", "5", "6", "7", "8")))
Матрица «значения» представляет значения, которые я хочу отобразить в указанном выше порядке. Таким образом, A и B заменят 1. Нулевые ставки остаются. Поэтому, если строка i начинается с AAB ... для значений, а порядок строки i равен 100101, тогда результат должен быть A00A0B.
values <- structure(c("A", "B", "A", "B", "A", "B", "A", "B", "0", "0",
"A", "B", "A", "B", "0", "0", "0", "B", "0", "B", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"), .Dim = c(6L,
8L))
Так что выход я надеюсь выглядит следующим образом:
desired <- structure(c("A", "B", "A", "B", "A", "B", "0", "B", "0", "0",
"0", "0", "0", "0", "0", "0", "A", "0", "0", "0", "0", "0", "0",
"B", "A", "B", "0", "0", "0", "0", "0", "B", "0", "0", "0", "B",
"0", "0", "0", "0", "0", "0", "A", "0", "0", "0", "0", "0"), .Dim = c(6L,
8L), .Dimnames = list(c("1", "2", "3", "4", "5", "6"), c("1",
"2", "3", "4", "5", "6", "7", "8")))
Я возиться с петлями для часов, пытаясь получить эту работу в R, и это сводит меня орехи. Я сильно подозреваю, что здесь есть опция non-for loop, но мне, честно говоря, все равно, как я получаю конечный результат. Компьютерное время не является фактором, мой набор данных находится только в сотнях строк. Следует также отметить, что матрицы имеют одинаковый размер. Спасибо!