【问题标题】:how to join elements (chars) from a list into a single element in R?如何将列表中的元素(字符)连接到 R 中的单个元素中?
【发布时间】:2021-11-11 19:05:19
【问题描述】:

我正在尝试在 R 中创建一个简单的脚本来模拟环境对基因的压力,所以我有以下 ATCG 随机生成器:

list <- c("A","T","C","G")
samp <- sample(list, 1000, replace = T)
display <- function(a,b,c) {
    result <- sample(list, 1000, replace = T)
    return(result)
}

a <- display(a)

b <- display(b)

c <- display(c)

代码运行良好,但在概念上是错误的,因为密码子需要作为一组字符而不是单个字符连接。 所以我的问题是,如何加入这些元素 (1:4,5:8,...107:110)?

我知道 R 中有很多关于遗传学的软件包,但我试图让它非常简单,仅用作我的遗传学研究小组的练习。

提前致谢!

【问题讨论】:

  • 嗨,1) 如果您的函数既不是 a、b 或 c 的函数,而只是一些复制,为什么还要放置 function(a,b,c)。您的功能是 function() sample(list, 1000, replace = TRUE) 2) 不清楚您想要什么。你想要一个单词的字符串向量,每个单词有 4 个字符?
  • 3) 列表不是列表而是字符串向量
  • 嗨,回答 1) 我刚刚创建了函数,因此它可以为每个向量运行不同的样本 2) 是的,每个字符串都有来自列表样本 (ATCG) 的 4 个字符。 3) 很抱歉造成误解,但如果这是一个问题,我没有得到谢谢!

标签: r genetics


【解决方案1】:

也许这就是你的想法:

dat <- setNames( data.frame(
  replicate(3, replicate( 1000,
  paste0(sample(c("A","C","T","G"),4, replace=T),collapse="") ) ) ),
  c("a","b","c") )

结果

dat
      a    b    c
1  CATG CTAG CGAT
2  AGCT GACT TGAC
3  TCAG TAGC TCAG
4  CGAT GACT GTAC
5  TCGA TAGC CTGA
...etc

您应该能够与dat$adat$bdat$c 进行比较

【讨论】:

  • 对不起,我不能投票给你的答案,但差不多了。我需要这样的输出: >a = ([ATCG],[ATTA],[GGAT],...) >b = ([TATA],[GTTA],[GGAT],...) 所以我可以比较a~b
  • 做了一些修改。现在应该可以了。
  • 天哪,你成功了!非常感谢!
  • 但我只是注意到每个密码子都有一个元素(ATCG)以不同的顺序排列,可能有一些参数可以在每个元素中重复一个元素,如(AACG 或 CCTG)?
  • 刚刚添加。再试一次。之前必须在复制粘贴时被丢弃。
猜你喜欢
  • 2014-04-18
  • 1970-01-01
  • 2021-10-05
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多