gpt4 book ai didi

r - "Selective"在 data.frame 中加入?

转载 作者:行者123 更新时间:2023-12-02 05:44:17 24 4
gpt4 key购买 nike

我有两个相同长度的向量。这是一个包含四行的简单示例:

[1] green  
[2] black, yellow
[3] orange, white, purple
[4] NA

[1] red
[2] black
[3] NA
[4] blue

第一个或第二个向量中可以有 NA,但在每一行中至少有一个总是有一个值。第一个向量可以包含一个或多个值,而第二个向量只能包含一个。我想以一种输出将是这样的方式“选择性地”逐行连接这两个向量:

[1] green, red  
[2] black, yellow
[3] orange, white, purple
[4] blue

这意味着第一个向量的内容必须始终出现在输出中。如果第一个向量的一行中有 NA,它将被第二个向量的同一行中的值覆盖。
如果该值不在第一个向量的同一行中,则将添加第二个向量的内容。第二个向量中的 NA 将被忽略。

我试过:

merge(A,B)
merge(A, B, all=TRUE)
merge(A, B, all.x=TRUE)
merge(A, B, all.y=TRUE)

但它们都产生完全不同的结果。

如何实现上述“选择性”连接?

非常感谢您的考虑!

最佳答案

您实质上是在尝试进行“联合,然后丢弃所有 NA”,那么这个单行代码怎么样?

A = list( 'green', c('black', 'yellow'), c('orange', 'white', 'purple'), NA)                                                             

B = list( 'red', 'black', NA, 'blue')

> sapply(mapply(union, A,B), setdiff, NA)
[[1]]
[1] "green" "red"

[[2]]
[1] "black" "yellow"

[[3]]
[1] "orange" "white" "purple"

[[4]]
[1] "blue"

关于r - "Selective"在 data.frame 中加入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10496095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com