【发布时间】:2015-04-02 04:27:33
【问题描述】:
作为初学者,我有一个非常基本的问题。当我使用 data.frame 函数将向量与矩阵合并时,向量总是合并为一列。这样,data.frame 作为 cbind 函数起作用,但是,数据的完整性,即类不会松散。我想知道如何在使用数据框功能时合并矩阵中的一行?谢谢
【问题讨论】:
作为初学者,我有一个非常基本的问题。当我使用 data.frame 函数将向量与矩阵合并时,向量总是合并为一列。这样,data.frame 作为 cbind 函数起作用,但是,数据的完整性,即类不会松散。我想知道如何在使用数据框功能时合并矩阵中的一行?谢谢
【问题讨论】:
假设我们需要将“向量”作为行附加到现有的“矩阵”并输出为“data.frame”,我们可以使用rbind
res <- rbind.data.frame(m1, v2)
res
# V1 V2 V3 V4
#1 1 3 5 7
#2 2 4 6 8
#3 1 2 3 4
str(res)
#'data.frame': 3 obs. of 4 variables:
# $ V1: int 1 2 1
# $ V2: int 3 4 2
#$ V3: int 5 6 3
# $ V4: int 7 8 4
对于cbind,我猜你提到了这个:
data.frame(m1, v1)
# X1 X2 X3 X4 v1
#1 1 3 5 7 1
#2 2 4 6 8 2
假设,我们有一个“字符”向量 ('v3') 和一个数字矩阵 ('m1'),data.frame(m1, v3, stringsAsFactors=FALSE) 会将 'v3' 的类保留为 '字符'。但是,如果我们在类似的向量('v4')上执行rbind.data.frame,这会将所有列转换为'character'。
m1 <- matrix(1:8, ncol=4)
v1 <- 1:2
v2 <- 1:4
v3 <- as.character(v1)
v4 <- as.character(v2)
【讨论】: