全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1440 6
2019-09-06
悬赏 10 个论坛币 未解决
即矩阵元素为第一行1,2,3,4;第二行2,3,4,5;对他们两行进行粘贴为12,23,34,45;矩阵由多行,两两粘贴的情况下,怎么不使用for循环写出来,用for数据大的话会很慢
我的代码是这个样子的:
n<-1
for (i in 1:(nrow(GO_matrix)-1)) {
    for (j in (i+1):nrow(GO_matrix)) {
      x1<-GO_matrix[i,]
      x2<-GO_matrix[j,]
      x3<-paste(x1,x2,sep = "")
      gene_gene[n,]<-x3
      n<-n+1
    }
  }
怎么能去掉for循环,谢谢。

二维码

扫码加我 拉你入群

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

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

全部回复
2019-9-7 19:24:28
mt1 <- matrix(1:8,ncol=2)

paste0(mt1[,1],mt1[,2])
二维码

扫码加我 拉你入群

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

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

2019-9-7 21:07:49
借楼上的数据,你可以把原矩阵的最后一行去掉,和第一行去掉,生成2个矩阵。然后对应元素用paste即可
复制代码
二维码

扫码加我 拉你入群

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

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

2019-9-9 17:38:36
wangfs111222 发表于 2019-9-7 19:24
mt1
我的数据是一个很大的数据,将近一万行,如果使用你说的会更麻烦
二维码

扫码加我 拉你入群

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

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

2019-9-9 18:52:42
jiangbeilu 发表于 2019-9-7 21:07
借楼上的数据,你可以把原矩阵的最后一行去掉,和第一行去掉,生成2个矩阵。然后对应元素用paste即可
我的目的是n行数据,两两粘贴,比如说第一行与剩下第n-1行,第二行与n-2行,一直这样子粘贴
二维码

扫码加我 拉你入群

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

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

2019-9-9 19:26:06
n.samples <- 10000

a.1 <- matrix(1:(3 * n.samples),nrow=3)
a.1
b.1 <- a.1[1:(nrow(a.1)-1),]
b.2 <- a.1[2:nrow(a.1),]
system.time(b.3 <- paste0(b.1,b.2))
# 用户 系统 流逝
# 0.01 0.00 0.02

你要的10000行耗时
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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