我有n个矩阵,列数相同但数据类型不同。我想将所有矩阵强制转换为特定的矩阵数据类型,以便我可以rbind
所有矩阵。
输入
mat1 <- data.frame(var1=rep(2010,10), var2=letters[1:10], var3 = as.factor(rep(NA,10)))
mat2 <- data.frame(var1=rep(2010,10), var2=letters[1:10], var3 = as.numeric(rep(1,10)))
mat3 <- ...
我希望像data type of mat1 <- data type of mat2
一样强制执行rbind(mat1,mat2)
而不发出警告/错误。由于我的矩阵非常大,因此无法单独更改每个变量数据类型。
答案 0 :(得分:3)
根据您的意思而不能分别更改每个变量数据类型,&#34;您可以将mapply
与as
:
mat1[] <- mapply(FUN = as, mat2, sapply(mat2, class), SIMPLIFY = FALSE)