这里有一个方法.在两个数据帧中创建索引,告诉图像id值匹配的位置.然后根据这些索引分配类.
x <- 'image class type
img01 car png
img02 bus png
img03 bus jpg
img04 car bmp'
dataframe1 <- read.table(textConnection(x), header = TRUE)
x <- 'image class
img02 car
img03 bus
img04 bus'
dataframe2 <- read.table(textConnection(x), header = TRUE)
i <- match(dataframe2$image, dataframe1$image) |> na.omit()
j <- match(dataframe1$image, dataframe2$image) |> na.omit()
dataframe1$class[i] <- dataframe2$class[j]
dataframe1
#> image class type
#> 1 img01 car png
#> 2 img02 car png
#> 3 img03 bus jpg
#> 4 img04 bus bmp
由reprex package(v2.0.1)于2022-07-29创建
上述代码的一个变体是
common <- intersect(dataframe2$image, dataframe1$image)
i <- match(common, dataframe1$image)
j <- match(common, dataframe2$image)
dataframe1$class[i] <- dataframe2$class[j]
由reprex package(v2.0.1)于2022-07-29创建