2012-02-27 3 views
0

У меня есть матрица под названием матрицу, которая выглядит следующим образом:Как добавить вектор int к коэффициенту?

charge convexhull_xCoor convexhull_yCoor id    intensity 
3  3336.43    667.62  f_7936733956214261295 475891 
3  3339.73    667.6  f_7936733956214261295 475891 

Я получаю два вектора, идентификатор и интенсивность:

idVector = matrix[4] 
intensityVector = matrix[5] 

Я хочу, чтобы добавить эти два вектора вместе с помощью добавления:

bigVector = append(idVector, intensityVector) 

Однако, когда я это делаю, я получаю это в результате:

[1]  4  3  2  1 475891 5490000 1860000 1100000 

R сделал класс = коэффициент из idVector, и когда я добавляю intVector к нему, он не добавляет его к меткам. Как я могу добавить вектор int к коэффициенту?

Ниже приведен воспроизводимый код, у меня есть проблемы с передачей (head (matrix, 4)), потому что он дает все идентификаторы, которые довольно много, я дал dput (head (matrix, 4)) of вместо векторов.

vector1 = structure(c(4L, 3L, 2L, 1L), .Label = c("f_15177294341548527346", "f_18178836531573487427", "f_2444900193131259878", "f_7936733956214261295"), class = factor") 
vector2 = c(475891, 5490000, 1860000, 1100000) 
bigVector = append(vector1, vector2) 
vector1 
vector2 
bigVector 

ответ

2

Вы не можете смешивать факторов & номера, как, что в векторе - вы должны использовать фрейм данных.

bigdf <- data.frame(id=idVector, intensity=intensityVector) 

Тогда взгляните на bigdf (и вы можете получить доступ к столбцам через bigdf$id, и т.д.).

В качестве альтернативы, если элементы idVector уникальны, вы можете добавить idVector, как атрибут названия вашего intensityVector:

names(intensityVector) <- idVector 

Однако идентификатор больше не является фактором, но вы можете обратиться к значениям в intensity конкретным id, как в intensityVector['f_7936733956214261295'].

Подход к кадрам данных почти всегда лучше, потому что он очень хорошо подходит для статистического анализа.

+0

Решение datafrane делает int из идентификатора, а затем округляет их следующим образом: f_16392539553645958321 becomming 1640000000.0. Мне нужен весь идентификатор, чтобы соответствовать id другому вектору с одинаковыми идентификаторами. –

+0

Это не должно сделать их int в кадре данных, вы уверены, что 'idVector' является 'f_xxxxx' в отличие от ints? В качестве последнего средства вы можете сделать 'id = as.character (idVector)', но это не обязательно, если 'idVector' уже является символом. –

Смежные вопросы