R语言 行更新:当有重复时,如何处理此函数的错误?

c0vxltue  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(149)

对以下两个 Dataframe 使用rows_update时

df1 = data.frame(ID = c(1,rep(2,5),7:10), Num = c(111,rep(15,5),112:115))

g1 = data.frame(ID = rep(2,5), Num = rep(16,5))

rows_update(df1 , g1 )

输出为

Matching, by = "ID"
Error in `rows_update()`:
! `y` key values must be unique.
ℹ The following rows contain duplicate key values: `c(1, 2, 3, 4, 5)`.
Backtrace:
 1. dplyr::rows_update(df1, g1)
 2. dplyr:::rows_update.data.frame(df1, g1)

我该如何处理这样的错误?谢谢

qni6mghb

qni6mghb1#

由于更新列表基本上只包含重复的行,因此只需删除重复行就可以使rows_update函数正常工作。

rows_update(df1 , unique(g1) )
#    ID Num
# 1   1 111
# 2   2  16
# 3   2  16
# 4   2  16
# 5   2  16
# 6   2  16
# 7   7 112
# 8   8 113
# 9   9 114
# 10 10 115
vktxenjb

vktxenjb2#

使用distinct

library(dplyr)
rows_update(df1, distinct(g1))
  • 输出
ID Num
1   1 111
2   2  16
3   2  16
4   2  16
5   2  16
6   2  16
7   7 112
8   8 113
9   9 114
10 10 115

相关问题