R (SensoMineR) не создает все графики при использовании функции pmfa - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь выполнить прокрустово-многофакторный анализ моего набора данных. Набор данных был создан с использованием метода, называемого «врасплох», который используется в сенсорной науке. У меня проблема в том, что один из графиков pmfa, который предполагается создать, не возвращается R.

1. Фрейм данных координат

Первый (фиктивный) фрейм данных был создан 3 участниками, поместив 4 образца напитка на лист бумаги и записав координаты X и Y положения напитка на этой бумаге (data1.coord).

X1<- c(573, 234, 545, 557) # x coordinate for Panelist 1 (P01)
Y1<- c(391, 308, 375, 82) # y coordinate for Panelist 1 (P01)
X2<- c(303, 224, 577, 515) # x coordinate for Panelist 2 (P02)
Y2<- c(83, 369, 204, 156) # y coordinate for Panelist 2 (P02)
X3<- c(519, 328, 530, 87) # x coordinate for Panelist 3 (P03)
Y3<- c(117, 281, 368, 62) # y coordinate for Panelist 3 (P03)
data1.coord <- data.frame(cbind(X1, Y1, X2, Y2, X3, Y3))
rownames(data1.coord) = c("Sample1" ,"Sample2" ,"Sample3" ,"Sample4")
data1.coord

2. Фрейм данных дескрипторов

Эксперты также назначили дескрипторы (сладкие, землистые, горькие, вяжущие, дымные) для 4 выборок, которые были записаны в отдельном фрейме данных (data1.desc).

sweet <- c(1, 1, 2, 1)
earthy <- c(1, 1, 1, 2)
bitter <- c(1, 0, 0, 0)
astringent <- c(2, 0, 2, 1)
smokey <- c(2, 2, 0, 0)
data1.desc <- data.frame(cbind(sweet, earthy, creamy, vanilla, smokey)) # contingency table with attributes
rownames(data1.desc) = c("Sample1" ,"Sample2" ,"Sample3" ,"Sample4")
data1.desc

3. Анализ

SensoMineR был использован для анализа этих данных. nappeplot отображает конфигурацию 4-х образцов на каждом листе бумаги, как они были размещены каждым из 3 участников. Это прекрасно работает для меня.

library(SensoMineR)
nappeplot(data1.coord, lim = c(650,433)) # Plot panelists' maps

Но когда я пытаюсь получить R для построения карт отдельных участников панели и их сравнения друг с другом, R возвращает карты только первых 2 участников. Я пробовал это с разными наборами данных с разным количеством участников дискуссии, но безрезультатно. По какой-то причине сюжет для последнего участника дискуссии никогда не возвращается. Не имеет значения, является ли последний участник дискуссии номером 3,9 или 100. Последний график просто отсутствует.

x11()
res1 <- pmfa(data1.coord, data1.desc)

4. Код из SensoMineR Документация + Устранение неполадок

Я попытался запустить пример кода, приведенный в документации SensoMineR:

data(napping)
x11()
pmfa(napping.don, napping.words)

Это также отлично работает. Все карты панелистов построены. Я сравнил их фрейм данных с моим, и структуры выглядят одинаково. Единственное, что они не делают, это то, что я передаю pmfa объекту (res1). Я пробовал без объекта res1, и это также не влияет на количество возвращаемых карт.

Я не знаю, почему карта последнего участника не строится. Любая помощь будет принята с благодарностью.

...