全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
8513 2
2018-11-06
R语言怎么把数据框每列分割成两列,然后合并成新的数据框?

比如数据如下:
kk <- matrix(c("CG","CC","GG","GG","CG","CG","CC","CG","CG","CC","GG","GG"),3,4)
kk <- as.data.frame(kk)

把每一列的字符串分割成两个字符,然后各自成为新的列,再进行合并。
library(stringr)
split <- function(temp){
  return(str_split_fixed(temp, "", 2))
}

jj <- matrix(0,nrow(kk), ncol(kk))
for(i in 1:ncol(kk)){
  temp <- split(kk[,i])
  jj <- cbind(jj, temp)
}
jj <- jj[,-c(1:4)]

我自己实现的代码,但是jj合并太慢了,能否有更有效的办法,请大牛指导,多谢了!!!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-11-6 10:06:39
矩阵cbind循环越往后越慢,而且基因型数据通常又很大。
用list存储,再解成matrix,速度就快得多,试一下。
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-6 21:51:09
lemon.d 发表于 2018-11-6 10:06
矩阵cbind循环越往后越慢,而且基因型数据通常又很大。
用list存储,再解成matrix,速度就快得多,试一下。 ...
多谢,一看这代码就知道是大牛!!!学习了,再次感谢!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群