簡體   English   中英

根據R中的表替換數據框中的值

[英]Replace values in data frame based on a table in R

數據框:

 set.seed(90)
 df <- data.frame(id = 1:10, values = round(rnorm(10),1))
    id values
 1   1    0.1
 2   2   -0.2
 3   3   -0.9
 4   4   -0.7
 5   5    0.7
 6   6    0.4
 7   7    1.0
 8   8    0.9
 9   9   -0.6
 10 10    2.4

表:

 table <- data.frame(values = c(-2.0001,1.0023,0.0005,1.0002,2.00009), final_values = round(rnorm(5),2))

    values final_values
 1 -2.00010        -0.81
 2  1.00230        -0.08
 3  0.00050         0.87
 4  1.00020         1.66
 5  2.00009        -0.24

我需要根據表中值的最接近匹配來替換數據框中的值。

最終產出:

    id final_values
 1   1    0.87
 2   2    0.87
 3   3   -0.08
 4   4   -0.08
 5   5    1.66
 6   6    0.87
 7   7    1.66
 8   8    1.66
 9   9   -0.08
 10 10   -0.24

基礎R的最佳方法是什么?

這是一種方法,您可以將結果覆蓋回df

sapply(df$values, function(x) table$final_values[which.min(abs(x - table$values))])
[1]  0.87  0.87 -0.08 -0.08  1.66  0.87  1.66  1.66 -0.08 -0.24

暫無
暫無

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

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