R语言 用父tibble的列数据来改变嵌套tibble

tcomlyy6  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(85)

我得到了以下数据:

test1 <- tibble::tribble(
  ~ company,
  ~ fx,
  ~ data,
  "company1",
  'EUR',
  tibble::tibble(cars[1:2,]),
  "company2",
  'USD',
  tibble::tibble(cars[3:4,]),
  "company3",
  'CHF',
  tibble::tibble(cars[5:6,])
)

字符串
我可以像这样改变嵌套的数据:

test2 <- test1 |>
  dplyr::mutate(data = data |> purrr::map(\(x) x |> dplyr::mutate(x, Test ='Test')))

test2$data[[2]] |> names()


现在,我正在努力将嵌套数据与父数据的fx(即欧元、美元、瑞士法郎)
有什么建议吗

ewm0tg9j

ewm0tg9j1#

也许你需要的是map2,这样你就可以在函数中同时传递datafx值。

library(dplyr)
library(purrr)

test2 <- test1 |> mutate(data = map2(data, fx, \(x, y) x |> mutate(Test = y)))

test2
#  company  fx    data            
#  <chr>    <chr> <list>          
#1 company1 EUR   <tibble [2 × 3]>
#2 company2 USD   <tibble [2 × 3]>
#3 company3 CHF   <tibble [2 × 3]>

test2$data[[1]]
# A tibble: 2 × 3
#  speed  dist Test 
#  <dbl> <dbl> <chr>
#1     4     2 EUR  
#2     4    10 EUR  

test2$data[[2]]

# A tibble: 2 × 3
#  speed  dist Test 
#  <dbl> <dbl> <chr>
#1     7     4 USD  
#2     7    22 USD

字符串

相关问题