r - 条件语句:根据某个输入改变数据列表中的一个变量
问题描述
我可以使用条件语句根据特定输入更改数据列表中的一个变量吗?
例如,数据列表如下。我需要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)
解决方案
您可以创建另一个列表,其中包含要存储的名称perd
和phyd
?
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。