簡體   English   中英

R中2對數據的查找表

[英]Lookup table for 2 pairs of data in R

我為R中的2對數據做了一個查找表

數據測試:

T   RH
32  0
45  12
36  15
29  25
28  35  

查找表(這里只列出了一些):

32  11  3.95
32  12  3.9
32  13  3.85
32  14  3.8
32  15  3.75
32  16  3.7

但是在 output 中丟棄了與查找表不匹配的數據

如何使 output 具有相同大小的行,並在 output 的行中使用 NA 與查找表不匹配?

順便說一句,我的代碼是這樣的:

A1 <- data-tes
B1 <- lookup

library(dplyr)

anti_join(anti_join(B1, A1 )) %>%
  select(-Rate)

TCI2 <- bind_rows(inner_join(B1, A1 ))

對不起,我的意思是這樣的:

數據測試:T RH 32 0 45 12 36 15 29 25 28 35

查表:T RH Rate 32 0 5 45 12 4 70 15 3 80 25 2

Output 所需:T RH 率 32 0 5 45 12 4 36 15 NA 29 25 NA 28 35 NA

NA 因為沒有使用查找表進行數學運算

編輯:

感謝您使用更多詳細信息更新您的問題,但請編輯您的原始問題以包含新的詳細信息,而不是將它們添加到評論中。

看起來你想要一個“左連接”(正如@Maurits Evers 在上面的評論中所建議的那樣),例如

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

A1 <- read.table(text = "T   RH
32  0
45  12
36  15
29  25
28  35 ", header = TRUE)

B1 <- read.table(text = "T   RH   Rate
32  0     5
45  12    4
70  15    3
80  25    2", header = TRUE)

desired_outcome <- read.table(text = "T   RH  Rate
32  0     5
45  12    4
36  15    NA
29  25    NA
28  35    NA", header = TRUE)

left_join(A1, B1)
#> Joining, by = c("T", "RH")
#>    T RH Rate
#> 1 32  0    5
#> 2 45 12    4
#> 3 36 15   NA
#> 4 29 25   NA
#> 5 28 35   NA
desired_outcome
#>    T RH Rate
#> 1 32  0    5
#> 2 45 12    4
#> 3 36 15   NA
#> 4 29 25   NA
#> 5 28 35   NA

reprex package (v2.0.1) 創建於 2022-02-17

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM