R 条件语句:根据特定输入更改数据列表中的一个变量

R 条件语句:根据特定输入更改数据列表中的一个变量,r,conditional-statements,R,Conditional Statements,我可以使用条件语句根据特定输入更改数据列表中的一个变量吗 例如,数据列表如下所示。当我使用不同的输入时,我需要d=perd或phyd:dlist[x],d=perd数据列表[y],d=phyd。x和y可以是任何东西,我需要的只是下一个命令,然后作为perd或phyd dlist <- list( Nsubjects = 1, Ntrials = 2, d = perd, ) perd <- c (1,2,3) phyd <-

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

例如,数据列表如下所示。当我使用不同的输入时,我需要
d=perd
phyd
dlist[x]
d=perd
<代码>数据列表[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)

dlist您是否可以创建另一个包含名称的列表来存储
perd
phyd

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

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

在哪里可以执行类似于
dlist[d=plist[[val]]]]
的操作?因为我的目的是将数据列表放入JAG中,而不创建两个单独的数据列表。实际上,最初我考虑的是
list(nsobjects=1,Ntrials=2,d=if(val==1)c(1,2,3)else c(4,5,6))
其中
val=1
或2。这样,您就不需要辅助列表
plist
。查看更新的答案。非常感谢!!对不起,这可能是个愚蠢的问题。我这样做了:
d=if(val==1)perd else phyd
我已经在这里创建了
perd
phyd
,我得到了这个错误消息:条件的长度>1,并且只使用第一个元素。我将
val
定义为
val保持我的答案与
d=if(val==1)c(1,2,3)else c(4,5,6)
d=list(c(1,2,3),c(4,5,6))[[val]
。如果
val
是单个数字,它将按原样工作。如果长度大于1,则使用
lappy
lappy(c(1,2),函数(x)列表(nsobjects=1,Ntrials=2,d=list(c(1,2,3),c(4,5,6))[[x]])
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]]
)