是hlookup可能在R?(或者,如何有条件地填充列?)

  • 本文关键字:有条件 填充 或者 hlookup r
  • 更新时间 :
  • 英文 :


我有两个数据帧

X1是

size    count
37      1.181
38      0.421
39      0.054

且X2为

size    v1    v1
37      1     5
...     ...   ...
37      1     5
38      3     3
...     ...   ...
38      3     3
39      5     6
...     ...   ...
39      5     6

Dataframe X2基本上是一个大面板。我想在X2中创建第三列v3,这样,如果大小匹配,它将从X1中获取count的值。

这怎么可能?

您可以像这样将两个数据集连接在一起:

library(dplyr)
left_join(X2, X1, by="size")

Iris数据集的示例:

I2<-data.frame(Species=c("setosa", "versicolor",  "virginica"),
myData=c(1,2,3))
left_join(iris, I2, by="Species")

这可以通过dplyr包中的left_join()来完成。

library(dplyr)
x1 <- tribble(~size, ~count,
37, 1.181,
38, 0.421,
39, 0.054
)
x2 <- tribble(~size, ~v1, ~v2,
37, 1, 5,
37, 1, 5,
38, 3, 3,
38, 3, 3,
39, 5, 6,
39, 5, 6
)
left_join(x2, x1, by = "size")

生产:

#    size    v1    v2 count
#   <dbl> <dbl> <dbl> <dbl>
# 1    37     1     5 1.18 
# 2    37     1     5 1.18 
# 3    38     3     3 0.421
# 4    38     3     3 0.421
# 5    39     5     6 0.054
# 6    39     5     6 0.054

基本R函数merge也会让你到达那里。

merge(x2, x1)

最新更新