gpt4 book ai didi

r - 如何通过将相同的值写入同一行,将两个不同长度的向量写入一个数据帧?

转载 作者:行者123 更新时间:2023-12-03 17:07:16 29 4
gpt4 key购买 nike

我想将两个长度不同且值部分相等的向量写入一个数据帧。相同的值应写入同一行。

ef1 <- c('A1', 'A2', 'B0', 'B1', 'C1', 'C2')
ef2 <- c('A1', 'A2', 'C1', 'C2', 'D1', 'D2')
如果我将它们写在一个数据框中,它看起来像这样:
df <- data.frame (ef1, ef2)
> df
ef1 ef2
1 A1 A1
2 A2 A2
3 B0 C1
4 B1 C2
5 C1 D1
6 C2 D2
但我想要的是这个:
> df
ef1 ef2
1 A1 A1
2 A2 A2
3 B0 NA
4 B1 NA
5 C1 C1
6 C2 C2
7 NA D1
8 NA D2
我很感激任何帮助。

最佳答案

一种选择是 match

(tmp <- unique(c(ef1, ef2)))
# [1] "A1" "A2" "B0" "B1" "C1" "C2" "D1" "D2"

out <- data.frame(ef1 = ef1[match(tmp, ef1)],
ef2 = ef2[match(tmp, ef2)])
结果
out
# ef1 ef2
#1 A1 A1
#2 A2 A2
#3 B0 <NA>
#4 B1 <NA>
#5 C1 C1
#6 C2 C2
#7 <NA> D1
#8 <NA> D2

关于r - 如何通过将相同的值写入同一行,将两个不同长度的向量写入一个数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62892682/

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