我有两个数据框,看起来有点像:
Source_name <- c("name1", "name2", "name3", "name4", "name5")
Target_name <- c("name10", "name11", "name12", "name13", "name14")
values <- c("asd", "213", "kahsd", "a9u", "oau92")
values2 <- c("asdd", "oau892", "kahsd", "213", "213")
dat <- cbind(Source_name, values)
daf <- cbind(Target_name, values2)
dat
Source_name values
[1,] "name1" "asd"
[2,] "name2" "213"
[3,] "name3" "kahsd"
[4,] "name4" "a9u"
[5,] "name5" "oau92"
daf
Target_name values2
[1,] "name10" "asdd"
[2,] "name11" "oau892"
[3,] "name12" "kahsd"
[4,] "name13" "213"
[5,] "name14" "213"
每个值在 dat 中只出现一次,但在 daf 中可能出现多次(或根本不出现)。根据desired_output data.frame,我想在dat中记录那些在daf中最多出现一次的值。
unique_values <- c( "asd", "kahsd", "a9u", "oau92")
Source_name <- c( "name1", "name3", "name4", "name5")
Target_name <- c( "NA", "name12", "NA", "NA")
desired_output <- data.frame(cbind(unique_values, Source_name, Target_name))
desired_output
unique_values Source_name Target_name
1 asd name1
3 kahsd name3 name12
2 a9u name4
4 oau92 name5
我想有一种简单的方法可以使用 apply 或其他东西来做到这一点,但我很难过。