我有一个名为矩阵的矩阵,如下所示:
charge convexhull_xCoor convexhull_yCoor id intensity
3 3336.43 667.62 f_7936733956214261295 475891
3 3339.73 667.6 f_7936733956214261295 475891
我得到两个向量,id和强度:
idVector = matrix[4]
intensityVector = matrix[5]
我想使用append:
将这两个向量添加到一起bigVector = append(idVector, intensityVector)
然而,当我这样做时,我得到了这个结果:
[1] 4 3 2 1 475891 5490000 1860000 1100000
R在idVector中创建了一个class = factor,当我将intVector附加到它时,它没有将它附加到标签上。如何将int向量附加到因子?
下面是可重现的代码,我只给出了dput(head(矩阵,4)),因为它给出了很多的id,我给了dput(head(matrix,4))而是矢量。
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
答案 0 :(得分:2)
你不能混合因素和像向量中的数字 - 你必须使用数据框。
bigdf <- data.frame( id=idVector, intensity=intensityVector )
然后查看bigdf
(您可以通过bigdf$id
访问列等)。
或者,如果idVector
的元素是唯一的,您可以添加idVector
作为intensityVector
的名称属性:
names(intensityVector) <- idVector
但是,ID不再是一个因素,但您可以在intensity
中引用id
中的值,与intensityVector['f_7936733956214261295']
中的{{1}}一样。
数据框架方法几乎总是更好,因为它非常适合统计分析。