R - Бесконечные или отсутствующие значения в 'x'

Я получаю Error in svd(x, nu = 0L, nv = 0L) : infinite or missing values in 'x' при попытке вычислить SVD для матрицы 100x2 в скрипте R. Что забавно, так это то, что выполнение того же самого для той же самой матрицы в командной строке R работает отлично.

Это данные:

       [,1] [,2]
  [1,]   5840    5
  [2,]   5840    6
  [3,]  14600    2
  [4,]   5840    5
  [5,]   5840    4
  [6,]   5840    5
  [7,]  14600    5
  [8,]  14600    8
  [9,]   5840    5
 [10,] 262144   11
 [11,]  66240    5
 [12,]  16560   14
 [13,]   5840    5
 [14,]   5840   17
 [15,]  16560    6
 [16,]   5840    7
 [17,]  66240    5
 [18,]   5840    7
 [19,]  33003    7
 [20,]  65535    7
 [21,]   5840    6
 [22,]  65535    7
 [23,]  65535    4
 [24,]  16560    4
 [25,]   5840    4
 [26,]  14600    9
 [27,]  65535    6
 [28,]  14600    8
 [29,]   8192    8
 [30,]  14600    5
 [31,]  14600    5
 [32,] 131072    8
 [33,]  14600   10
 [34,]  14600    5
 [35,]  14600    5
 [36,]  14600    5
 [37,]  14600    5
 [38,]  14600    8
 [39,]   8192    9
 [40,]   8192   16
 [41,]  65535    5
 [42,]  14600    5
 [43,]   6432    5
 [44,]  14600    5
 [45,]   5840    5
 [46,]  14600    5
 [47,]   8192    7
 [48,] 254992    5
 [49,]  14600    6
 [50,]   5840    7
 [51,]  14600    5
 [52,]   5840    6
 [53,]  16560    7
 [54,]  64860    6
 [55,]  14600    5
 [56,]  14600    5
 [57,]  14600    5
 [58,]  14600    5
 [59,]  14600    5
 [60,]  14600    5
 [61,]   5840    5
 [62,]  65535    4
 [63,]  14600    5
 [64,]  14600    5
 [65,]  14600    8
 [66,] 131328    5
 [67,]   5840    5
 [68,]  14600    5
 [69,]  14600    5
 [70,]  14600    5
 [71,]  14600    5
 [72,]  14600    5
 [73,]  14600    5
 [74,]   5840   19
 [75,]  14600    5
 [76,]   5840    5
 [77,]  14600    5
 [78,]  14600    5
 [79,]  14600    5
 [80,]  14600    5
 [81,]  14600    5
 [82,]  14600    5
 [83,]   5840    7
 [84,]  14600    5
 [85,]  66048   21
 [86,]  65535  159
 [87,]   6432    6
 [88,]  14600    5
 [89,]  65535    5
 [90,]   8192   10
 [91,]   5840    5
 [92,]  14600    5
 [93,]  14600    5
 [94,]  66048    8
 [95,]  14600    5
 [96,]  16560    5
 [97,]  14600    5
 [98,]  42900    6
 [99,]   8192    7
[100,]   8192    7

Я использую подмножество столбцов, поэтому фактический вызов, который я делаю, — это svd(C[,1:i]), где C — это матрица, которую я использую, а i равняется 2, когда происходит сбой.

Я уверен, что матрицы в скрипте и в подсказке одинаковые (я распечатал их в разные файлы и разобрал, чтобы убедиться!)

Итак, в чем здесь может быть проблема?

ИЗМЕНИТЬ

dput(C[,1:i])

structure(c(5840, 5840, 14600, 5840, 5840, 5840, 14600, 14600, 
5840, 262144, 66240, 16560, 5840, 5840, 16560, 5840, 66240, 5840, 
33003, 65535, 5840, 65535, 65535, 16560, 5840, 14600, 65535, 
14600, 8192, 14600, 14600, 131072, 14600, 14600, 14600, 14600, 
14600, 14600, 8192, 8192, 65535, 14600, 6432, 14600, 5840, 14600, 
8192, 254992, 14600, 5840, 14600, 5840, 16560, 64860, 14600, 
14600, 14600, 14600, 14600, 14600, 5840, 65535, 14600, 14600, 
14600, 131328, 5840, 14600, 14600, 14600, 14600, 14600, 14600, 
5840, 14600, 5840, 14600, 14600, 14600, 14600, 14600, 14600, 
5840, 14600, 66048, 65535, 6432, 14600, 65535, 8192, 5840, 14600, 
14600, 66048, 14600, 16560, 14600, 42900, 8192, 8192, 5, 6, 2, 
5, 4, 5, 5, 8, 5, 11, 5, 14, 5, 17, 6, 7, 5, 7, 7, 7, 6, 7, 4, 
4, 4, 9, 6, 8, 8, 5, 5, 8, 10, 5, 5, 5, 5, 8, 9, 16, 5, 5, 5, 
5, 5, 5, 7, 5, 6, 7, 5, 6, 7, 6, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 
8, 5, 5, 5, 5, 5, 5, 5, 5, 19, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 
21, 159, 6, 5, 5, 10, 5, 5, 5, 8, 5, 5, 5, 6, 7, 7), .Dim = c(100L, 
2L))

r svd
person cangrejo    schedule 28.11.2014    source источник
comment
Вы можете добавить print(C[,1:i]) перед вызовом svd, чтобы увидеть, какой ввод дает ошибку?   -  person agstudy    schedule 28.11.2014
comment
Вот что я написал, print(C[,1:i]).   -  person cangrejo    schedule 28.11.2014
comment
Опубликуйте вывод dput(C[,1:i]).   -  person Roland    schedule 28.11.2014
comment
Вот оно. Извините за задержку. Мне пришлось scp файлы с работы.   -  person cangrejo    schedule 28.11.2014
comment
Назначьте результат dput объекту x. Тогда и svd(x, nu = 0L, nv = 0L), и svd(x[,1:2], nu = 0L, nv = 0L) прекрасно работают в Rscript и дают идентичные результаты. Поэтому я бы сказал, что либо вы делаете разные вещи в интерактивном R и в Rscript.   -  person Bhas    schedule 28.11.2014
comment
Прямо сейчас я не могу подключиться по ssh к машине, которая выдавала ошибку, поэтому я попробую это в понедельник на работе. Спасибо.   -  person cangrejo    schedule 29.11.2014
comment
С этими аргументами это работает, но мне нужны собственные векторы.   -  person cangrejo    schedule 01.12.2014


Ответы (1)


Относится к сообщению об ошибке OP, а не к конкретному контексту OP.

Ошибка в svd(X, nu = 0L): бесконечные или отсутствующие значения в 'x'

Возникает при вычислении LDA..

Если объясненная переменная/группа имеет только одно значение в предоставленных данных (недопустимые данные).

person Bob    schedule 06.01.2019