Levelplot с неполными данными - PullRequest
0 голосов
/ 09 октября 2018

Использование пакета решеток в R:

Я глубоко проник в кроличью нору, и теперь мне нужна помощь, чтобы выбраться.

У меня есть несколько (дорогих) точек данных, которыеестественно, живут в сетке 32x32, но у меня нет всех возможных точек данных

> str(data)
'data.frame':   53 obs. of  3 variables:
$ X: num  16 16 16 16 13 13 13 13 23 23 ...
$ Y: num  20 16 23 10 16 23 20 10 16 23 ...
$ Z: num  1558 1561 1555 1540 1538 ...

Когда я пытаюсь использовать levelplot, как это,

> levelplot(data$Z ~ rbind(data$X, data$X) * rbind(data$Y, data$Y), 
     xlim=c(0.5, 32.5), ylim=c(0.5, 32.5))

график имеетцветные пятна, сгруппированные (для меня) в замешательстве. Вывод из графика уровня

Чего я хотел бы добиться, так это того, чтобы у меня было одно цветное пятно на пару индексов 1 на 1, соответствующее моим данным.Отсутствующие точки сетки можно оставить белыми.

Я пытался понять документацию R, но бросил.

Далее я попробовал сетку с фиктивной NA, а затем попытался заполнить соответствующие точки данных.Что-то вроде

> x <- seq(1, 32, length.out=32)
> y <- seq(1, 32, length.out=32)
> data <- expand.grid(X=x, Y=y)
> data$Z <- NA
> tmp <- res[selected_data, ]
> data[(data$X == tmp$X) & (data$Y == tmp$Y), 'Z'] <- tmp$Z
Error in `[<-.data.frame`(`*tmp*`, (data$X == tmp$Input_Channel) & (data$Y ==  : 
replacement has 53 rows, data has 1024

Где res - источник точек данных, а selected_data - вектор логики, используемый для выбора данных из res.В любом случае, это не сработает.

Несмотря на это, попытка заставить этот последний подход работать неверно.Я предпочел бы иметь правильное решение с levelplot, чем мою неудачную работу.

1 Ответ

0 голосов
/ 12 октября 2018

Я нашел работоспособное решение, которым я поделюсь, чтобы помочь другим:

> dataX <- c(seq(1, 32), rep(1, 32), tmp$X)
> dataY <- c(rep(1, 32), seq(1, 32), tmp$Y)
> dataZ <- c(rep(NA, 64), tmp$Z)
> levelplot(dataZ ~ dataX * dataY)

Добавление NA таким образом дает желаемый результат. Желаемый выход из графика уровня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...