我有一个相当小的问题:
想象一下两个列表“default”和“example”,每个列表由5个具有相同名称的元素组成(“p1”,“p2”,“p3”,“p4”,p5)。
如果示例的“p值”分配了一个值,则该值将保留。
如果“p值”没有赋值(NA),则应使用默认的相应“p值”来代替差距。
我知道你可以用for循环遍历每个元素并在for循环中构造一个if循环但是可能有一个更优雅的解决方案吗?
以下是一个示例案例:
example=list(p1=2,p2=3,p3=4,p4=NA,p5=NA)
default=list(p1=26,p2=34,p3=43,p4=11,p5=98)
答案 0 :(得分:2)
试试这个:
# assign matching p-value from default
example[ is.na(example) ] <- default[ is.na(example) ]
# result
example
# $p1
# [1] 2
#
# $p2
# [1] 3
#
# $p3
# [1] 4
#
# $p4
# [1] 11
#
# $p5
# [1] 98