【问题标题】:Overwrite single corresponding elements between two lists覆盖两个列表之间的单个对应元素
【发布时间】:2016-08-04 10:18:35
【问题描述】:

我有一个小问题:

假设有两个列表“default”和“example”,每个列表由 5 个具有相同名称的元素组成(“p1”、“p2”、“p3”、“p4”、“p5”)。

如果示例的“p-values”具有分配给它的值,则该值将保留。

如果“p-value”没有分配给它的值(NA),则应使用默认的相应“p-value”来替换间隙。

我知道您可以使用 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)

【问题讨论】:

标签: r overwrite


【解决方案1】:

试试这个:

# 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多