2017-07-27 13 views
0

我有兩個數據集,我需要添加一個基於兩個變量值的特定級別的值。我需要將計算的值添加到dat datasetdat1 dataset所以輸出應該像dat2。任何想法如何(dat1中的值是文本)?如何將計算結果添加到另一個基於過濾器的數據集

dat3 <- read.table(text = "  lamps vases 
            7 9 
            1 6 
            3 5 
            7 8 
            5 4 
            1 3 
            0 7 
            6 6 
            8 9 ", header = TRUE) 

dat2 <- read.table(text = "  lamps vases est 
            3,5 4,5 0.6 
            8  9  0.4 
        ", header = TRUE) 
dat2 <- read.table(text = "  lamps vases est 
            7 9  0 
            1 6  0 
            3 5  0.6 
            7 8  0 
            5 4  0.6 
            1 3  0 
            0 7  0 
            6 6  0 
            8 9  0.4", header = TRUE) 

回答

1

我們可以tidyverse嘗試。將'燈','花瓶'列(separate_rows),left_join分爲第一個數據集('df1' - 標記爲'df3'),將第二個數據集'dat2' 「在OP的帖子),並與replace_na變化NA在 'EST' 0

library(tidyverse) 
separate_rows(dat2, lamps, convert = TRUE) %>% 
    separate_rows(vases, convert = TRUE) %>% 
    left_join(dat1, ., by = c("lamps", "vases")) %>% 
    replace_na(list(est = 0)) 
# lamps vases est 
#1  7  9 0.0 
#2  1  6 0.0 
#3  3  5 0.6 
#4  7  8 0.0 
#5  5  4 0.6 
#6  1  3 0.0 
#7  0  7 0.0 
#8  6  6 0.0 
#9  8  9 0.4 
+0

謝謝@akrun – mql4beginner

相關問題