R статистика: проблема с простым вектором - столбцом

У меня есть проблема с помощью данных из разграниченного файла данных вкладки, импортированного с read.delim.

Большинство столбцов содержит числовые данные, которые я должен сделать a t.test для. К сожалению, я всегда получаю эту ошибку:

Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my))) 
            stop("data are essentiallyconstant") :
missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In mean.default(x) : argument is not numeric or logical: returning NA
2: In mean.default(y) : argument is not numeric or logical: returning NA

Я заметил, что это только происходит с векторами, которые состоят из разных уровней. Это даже не выполнит простые числовые операции как вектор [1] + вектор [2] для выровненных векторов. Векторы без уровней хорошо работают, все же.

Как я могу использовать данные в выровненных векторах для вычисления?

Спасибо

5
задан Frank 14 July 2010 в 14:59
поделиться

2 ответа

Мне удалось воспроизвести ваше сообщение об ошибке в следующем небольшом примере:

x = as.factor(1:5)
y = as.factor(1:5)

t.test(x, y)

yields

Error in if (stderr < 10 * .Machine$double.eps * max(abs(mx), abs(my))) stop("data are essentially constant") : 
  missing value where TRUE/FALSE needed
In addition: Warning messages:
1: In mean.default(x) : argument is not numeric or logical: returning NA
2: In mean.default(y) : argument is not numeric or logical: returning NA

Проблема в том, что вы пытаетесь выполнить t-тест на non-числовые векторы. Сложение также не определено для факторов:

x + y

yields

[1] NA NA NA NA NA
Warning message:
In Ops.factor(x, y) : + not meaningful for factors

Предупреждение дает четкое представление о том, что не так, а также объясняет, почему ваш t-тест не работает.

Чтобы устранить проблему, вам нужно сделать так, как предлагает ilya: преобразовать ваши векторы в числовые с помощью as.numeric(as.character())

7
ответ дан 14 December 2019 в 08:40
поделиться

Возможно, некоторые из ваших данных могут быть не в числовом формате после их загрузки. Проверьте структуру данных с помощью str (your.data) . Если ваши желаемые переменные не являются числовыми, вы можете преобразовать их с помощью data $ var1 <- as.числовой (данные $ var1) .

0
ответ дан 14 December 2019 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: