如何将字符矩阵转换为数字data.frame

时间:2018-08-07 08:07:28

标签: r matrix

我有一个字符matrix和一个字符data.table。当我合并它们时,会创建一个data.frame,但是character类都转换为我想避免的factor s。有办法避免吗?

df.new<-merge(matrix, df, by= col1)

我尝试将character matrix预先设为numeric,但是后来我失去了matrix的尺寸。

num.matrix<- sapply(matrix, as.numeric)

是否有一种巧妙的方法来处理这种情况?

1 个答案:

答案 0 :(得分:0)

您可以使用参数stringAsFactors = FALSE将矩阵转换为data.table。见下文:

library(data.table)
m <- matrix(letters[1:9], ncol = 3)
df <- data.table(V1 = letters[1:3], a = letters[4:6], b = letters[7:9])
foobar <- merge(as.data.table(m, stringsAsFactors = FALSE), df)
str(foobar)

输出:

Classes ‘data.table’ and 'data.frame':  3 obs. of  5 variables:
 $ V1: chr  "a" "b" "c"
 $ V2: chr  "d" "e" "f"
 $ V3: chr  "g" "h" "i"
 $ a : chr  "d" "e" "f"
 $ b : chr  "g" "h" "i"
 - attr(*, ".internal.selfref")=<externalptr> 
 - attr(*, "sorted")= chr "V1"