首页 > 解决方案 > 条件语句:根据某个输入改变数据列表中的一个变量

问题描述

我可以使用条件语句根据特定输入更改数据列表中的一个变量吗?

例如,数据列表如下。我需要d = perd或者phyd当我使用不同的输入时:dlist[x], d=perd; dlist[y], d=phyd. x 和 y 可以是任何东西,我需要的只是下一个命令,然后将其设为 perd 或 phyd。

    dlist <- list(
      Nsubjects = 1,
      Ntrials = 2,
      d = perd,
    )

perd <- c (1,2,3)
phyd <- c (4,5,6)

标签: rconditional-statements

解决方案


您可以创建另一个列表,其中包含要存储的名称perdphyd

plist <- list(x = c (1,2,3),  y = c (4,5,6))

然后,您可以通过其名称从中提取数据。

val <- 'x'

dlist <- list(
  Nsubjects = 1,
  Ntrials = 2,
  d = plist[[val]]
)

没有创造plist你就可以做到。:

list(
  Nsubjects = 1,
  Ntrials = 2,
  d = if(val == 1) c(1,2,3) else c(4,5,6)
)

或者也:

list(
  Nsubjects = 1,
  Ntrials = 2,
  d = list(c(1,2,3),c(4,5,6))[[val]]
)

在哪里val <- 1或 2。


推荐阅读