在r中编写函数和映射



我有一个dataframe1告诉每个值的含义,像这样

价值意义1红2个蓝色的3绿色... ...

和我有另一个像这样的大数据框架Id色重宽度1 1 98 32... ... ... ...

我试着写一个函数,然后映射到我的dataframe2和改变我的颜色列。我的代码是

color<-function(x){
for (i in 1:nrow(dataframe1)){
if(x == dataframe1$value[i]){
x = dataframe1$meaning[i]
}
}
map(dataframe2$color ,color)

得到null有人能帮我一下吗?我知道我可以做for循环来改变值,但是数据集太大了,这需要很长时间。

这是你想做的吗,即根据颜色代码将描述从数据框1附加到数据框2 ?

这是一个避免循环的矢量化解决方案。

library(tidyverse)
data_df <- tribble(
~id, ~colour, ~weight, ~width,
1, 1, 20, 30,
2, 2, 30, 20
)
colour_df <- tribble(
~value, ~meaning,
1, "red",
2, "blue"
)
data_df |> 
left_join(colour_df, by = c("colour" = "value"))
#> # A tibble: 2 × 5
#>      id colour weight width meaning
#>   <dbl>  <dbl>  <dbl> <dbl> <chr>  
#> 1     1      1     20    30 red    
#> 2     2      2     30    20 blue

由reprex包(v2.0.1)创建于2022-06-07

相关内容

  • 没有找到相关文章

最新更新