【问题标题】:In R, I would like to replace numeric values in a list for character values in a vector在 R 中,我想将列表中的数值替换为向量中的字符值
【发布时间】:2017-06-21 23:32:11
【问题描述】:

我有一个名为 temp.factors 的列表,如下所示。

$`1`
 [1]  1  2  3  4  5  6  7  8  9 10

$`2`
 [1] 11 12 13 14 15 16 17 18 19 20

 $`3`
 [1] 21 22 23 24 25 26 27 28 29 30

 $`4`
 [1] 31 32 33 34 35 36 37 38 39 40

我的目标是将此列表中的值替换为以下称为 temp.names 的字符向量中的值:

[1] "C1"  "C2"  "C3"  "C4"  "C5"  "C6"  "C7"  "C8"  "C9"  "C10" "A1" "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9" 
[20] "A10" "N1"  "N2"  "N3"  "N4"  "N5"  "N6"  "N7"  "N8"  "N9"  "N10" "O1"  "O2"  "O3"  "O4"  "O5"  "O6"  "O7"  "O8" 
[39] "O9"  "O10"

最终结果应如下所示:

$`1`
 [1] C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

$`2`
 [1] A1 A2 A3 A4 A5 A6 A7 A8 A9 A10

 $`3`
 [1] N1 N2 N3 N4 N5 N6 N7 N8 N9 N0

 $`4`
 [1] O1 O2 O3 O4 O5 O6 O7 O8 O9 O10

我已经在网上搜索了一个潜在的解决方案,但没有什么能比得上我想要的解决方案。您的建议将不胜感激。

谢谢!

【问题讨论】:

  • 你可以试试lapply(temp.factors, function(x) temp.names[x])
  • 成功了!谢谢你,休伯特。你能把这个贴在下面,我会把它标记为解决方案吗?

标签: r list vector character factors


【解决方案1】:

您可以使用lapply 来遍历列表:

lapply(temp.factors, function(x) temp.names[x])

【讨论】:

    【解决方案2】:

    relist的案例:

    relist(temp.names, temp.factors)
    

    【讨论】:

    • @HubertL - 我认为这只是一个直接替换,向量到列表中。也许OP可以澄清。无论哪种方式,如果它是一个索引,我认为你已经涵盖了他。
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 2017-07-31
    • 2020-01-17
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    相关资源
    最近更新 更多