【问题标题】:How to make a list of pairwise vectors in R?如何在R中制作成对向量列表?
【发布时间】:2014-01-28 20:02:09
【问题描述】:

我想要对两种类型的数据进行成对比较:假数据(对照)和测量数据,

sham1 <- c('Sham1.r1', 'Sham1.r2', 'Sham1.r3')
sham2 <- c('Sham2.r1', 'Sham2.r2', 'Sham2.r3')
shams <- list(sham1, sham2)
day14 <- c('T14d.r1', 'T14d.r2', 'T14d.r3')
day90 <- c('T90d.r1', 'T90d.r2', 'T90d.r3')
measurements <- list(hour4, day1, day3, day7, day14, day90)

我想得到以下内容:

(('Sham1.r1', 'Sham1.r2', 'Sham1.r3'), ('T14d.r1', 'T14d.r2', 'T14d.r3')), (('Sham1.r1', 'Sham1.r2', 'Sham1.r3'), ('T90d.r1', 'T90d.r2', 'T90d.r3')), (('Sham2.r1', 'Sham2.r2', 'Sham2.r3'), ('T14d.r1', 'T14d.r2', 'T14d.r3')),  (('Sham2.r1', 'Sham2.r2', 'Sham2.r3'), ('T90d.r1', 'T90d.r2', 'T90d.r3'))

我想要的输出是:

list(list(c("Sham1.r1", "Sham1.r2", "Sham1.r3"), c("T14d.r1", 
"T14d.r2", "T14d.r3")), list(c("Sham1.r1", "Sham1.r2", "Sham1.r3"
), c("T90d.r1", "T90d.r2", "T90d.r3")), list(c("Sham2.r1", "Sham2.r2", 
"Sham2.r3"), c("T14d.r1", "T14d.r2", "T14d.r3")), list(c("Sham2.r1", 
"Sham2.r2", "Sham2.r3"), c("T90d.r1", "T90d.r2", "T90d.r3")))

【问题讨论】:

  • shams &lt;- c(sham1, sham2); measurements &lt;- c(day14, day90); expand.grid(shams, measurements)strsplit(pairwise_combinations, " ") 怎么样?
  • @lukA 我刚刚看到我在问题中犯了一个错误。使用 expand.grid() 你会得到(sham1.r1, T14d.r1), (sham1.r1, T14d.r2), etc。我其实想要((sham1.r1, sham1.r2, sham1.r3), (T14d.r1, T14d.r2, T14d.r3)), ((sham1.r1, sham1.r2, sham1.r3), (T90d.r1, T90d.r2, T90d.r3)), etc
  • 您需要明确预期的输出。以哪种方式是“以下”“成对向量列表”。请dput想要的结果。
  • @Henrik 我添加了所需结果的 dput

标签: r list


【解决方案1】:
apply(expand.grid(shams, measurements), 1, unname)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2021-12-25
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2011-02-07
    相关资源
    最近更新 更多