SomersDelta: ошибка в as.table.default (x): невозможно привести к табу в R - PullRequest
1 голос
/ 08 мая 2019

пример данных

sommer=structure(list(tub = c(1L, 2L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 
1L, 1L, 2L, 1L, 0L, 0L, 1L, 0L, 2L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 
2L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 3L, 0L, 1L, 1L, 1L, 1L, 
0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 3L, 
2L, 0L, 1L, 0L, 3L, 2L, 2L, 0L, 0L, 0L, 1L, 0L, 0L, 3L, 1L, 1L, 
3L, 1L), fq = c(1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 
0L, 1L, 3L, 6L, 1L, 0L, 0L, 1L, 0L, 2L, 4L, 2L, 0L, 0L, 2L, 0L, 
0L, 5L, 0L, 1L, 2L, 0L, 0L, 1L, 0L, 0L, 0L, 14L, 0L, 1L, 1L, 
1L, 4L, 0L, 1L, 0L, 4L, 0L, 0L, 0L, 6L, 1L, 0L, 0L, 1L, 1L, 0L, 
1L, 3L, 4L, 0L, 1L, 0L, 8L, 1L, 2L, 0L, 0L, 0L, 2L, 0L, 0L, 3L, 
2L, 2L, 1L, 1L)), .Names = c("tub", "fq"), class = "data.frame", row.names = c(NA, 
-75L))

хочу вычислить SomersDelta

library("DescTools")
SomersDelta(sommer, direction = c("row", "column"))

и я получаю ошибку

Error in as.table.default(x) : cannot coerce to a table

Также я хочу получить позвоночник

library("coin")
spineplot(sommer)

но я получаю ошибку

Error in margin.table(tab, 1) : 'x' is not an array

Есть ли две ошибки взаимосвязи? Как рассчитать SomersDelta и получить график позвоночника вот так позвоночник

1 Ответ

0 голосов
/ 08 мая 2019

Требуется matrix в качестве ввода. Согласно ?SomersDelta

x - числовой вектор или таблица. Матрица будет считаться таблицей.

Здесь набор данных является data.frame классом. Мы можем преобразовать его в matrix (as.matrix), и он должен нормально работать

SomersDelta(as.matrix(sommer), direction = c("row", "column"))
#[1] -0.06137931
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...