我有一个字符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)
是否有一种巧妙的方法来处理这种情况?
答案 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"