0

我有一个称为矩阵的矩阵,如下所示:

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 = 因子,当我将 intVector 附加到它时,它不会将它附加到标签上。如何将 int 向量附加到因子?

下面是可重现的代码,我只给出了 dput(head(matrix,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
4

1 回答 1

2

您不能在向量中混合这样的因子和数字 - 您必须使用数据框。

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

然后看一下(您可以通过等bigdf访问列)。bigdf$id

或者,如果 的元素idVector是唯一的,您可以添加idVector为您的名称属性intensityVector

names(intensityVector) <- idVector

但是 id 不再是一个因素,但您可以intensity通过特定的方式引用 in 中的值,id如 in intensityVector['f_7936733956214261295']

数据框方法几乎总是更好,因为它非常适合统计分析。

于 2012-02-27T12:38:52.557 回答