我有两个清单:
list1<- list(x=c(1,2,3),
y=c(4,5,6))
list1
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
list2<- list(x=c(1,2,3),
y=c(4,5,6),
z=c(7,8,9))
list2
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
#$z
#[1] 7 8 9
我正在尝试做一个ifelse()
基于列表长度的语句,如果第二个列表的长度大于第一个列表,则应返回第二个列表。但是,那ifelse()
语句仅返回所需列表的第一个元素:
ifelse(length(list1)<length(list2),list2,list1)
# [[1]]
# [1] 1 2 3
为什么会发生这种情况,我怎样才能得到ifelse()
返回整个列表的语句?
ifelse
对于向量,使用if
/else
用于标量比较。
if(length(list1)<length(list2)) list2 else list1
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
#$z
#[1] 7 8 9
ifelse
返回与我们正在执行的测试长度相同的输出。length(length(list1)<length(list2))
是 1,因此它的输出长度也是 1。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)