Я имею дело с оборванным файловым кадром, который содержит столбец временных точек в первом столбце, список серийных номеров в первой строке и фактические данные инвентаризации (количество элементов) в остальная часть кадра данных.извлекающие факторы из строки в кадре данных
> mydf
V1 V2 V3 V4 V5
1 month item_serial123 item_serial234 item_serial345 item_serial456
2 0 234 120 302 500
3 1 344 125 350 450
4 2 235 129 400 300
5 3 453 145 450 330
6 4 200 130 500 200
7 5 201 501
8 6 504 202
Я пытаюсь форматировать данные таким образом, что у меня есть «длинный» список таким образом, что я могу запустить анализ на серийный номер каждого элемента. Я могу отказаться от нечисловых данных из моего списка и убедитесь, что данные импортируются в виде символьных объектов, установив stringsAsFactors=FALSE
флаг в read.table
, то преобразование mydf в матрицу данных:
> mydf.new<-data.matrix(mydf)
Warning in data.matrix(mydf) : NAs introduced by coercion
Warning in data.matrix(mydf) : NAs introduced by coercion
Warning in data.matrix(mydf) : NAs introduced by coercion
Warning in data.matrix(mydf) : NAs introduced by coercion
Warning in data.matrix(mydf) : NAs introduced by coercion
> mydf.new
V1 V2 V3 V4 V5
[1,] NA NA NA NA NA
[2,] 0 234 120 302 500
[3,] 1 344 125 350 450
[4,] 2 235 129 400 300
[5,] 3 453 145 450 330
[6,] 4 200 130 500 200
[7,] 5 201 NA 501 NA
[8,] 6 NA NA 504 202
Изменение переменной V1 на «время» тривиально. То, с чем я действительно борюсь, состоит в том, как извлечь серийные номера от mydf[1,2:5]
и присвоить их соответствующим данным, когда я расплав/литье mydf.new
. Я бы хотел, чтобы это произошло:
time count serial_number
0 234 item_serial123
1 344 item_serial123
2 235 item_serial123
3 453 item_serial123
4 200 item_serial123
5 201 item_serial123
6 NA item_serial123
и т. Д. Есть ли какие-либо предложения?
вам нужно использовать ' header = TRUE' при чтении данных с 'read.table' для R, чтобы понять, что первая строка соответствует именам colnames, тогда вы можете применить' data.matrix (mydf) 'без предупреждений –