R 通过在另一个选项卡中查找值来改变一个选项卡
在R中争论数据时,我想以这样一种方式创建一个TIBLE,即在不同的TIBLE中查找新列中的数值 给定导管移除数据集:R 通过在另一个选项卡中查找值来改变一个选项卡,r,dplyr,purrr,R,Dplyr,Purrr,在R中争论数据时,我想以这样一种方式创建一个TIBLE,即在不同的TIBLE中查找新列中的数值 给定导管移除数据集: # A tibble: 51 x 2 ExplYear RemovalReason <dbl> <chr> 1 2018 Infection 2 2018 Dysfunction 3 2018 Infection # ... etc. 我已尝试使用和一个助手函数对第一个T
# A tibble: 51 x 2
ExplYear RemovalReason
<dbl> <chr>
1 2018 Infection
2 2018 Dysfunction
3 2018 Infection
# ... etc.
我已尝试使用和一个助手函数对第一个TIBLE进行变异:
lookup = function(year) { impl_per_year[impl_per_year$ImplYear == year,]$n }
explants %>% mutate(Implants = map(ExplYear, lookup)
但这会将大量空整数向量放入到列中:
错在哪里?您应该能够按年份简单地将这两个表联接起来。如果我们使用dplyr将您的第一个tible称为explable,将您的第二个tible称为implable:
这将添加一个新的n列,其中包含每年的植入物数量。您应该能够简单地按年度将两个表合并。如果我们使用dplyr将您的第一个tible称为explable,将您的第二个tible称为implable: 这应该添加一个新的n列,其中包含每年植入的数量。librarytidyverse 我修改了你的数据,这样我的插图就不会有空输出
取决于你想要什么,考虑RealthJoin,InnLyJoin等,直到你得到你正在寻找的输出。例如:
inner_join(df, impl_per_year, by = c("ExplYear" = "ImplYear"))
# A tibble: 3 x 3
ExplYear RemovalReason n
<dbl> <chr> <dbl>
1 2017 Dysfunction 14
2 2016 Infection 46
3 2016 Infection 64
。。。它只提供两个Tibble的成功匹配。librarytidyverse
我修改了你的数据,这样我的插图就不会有空输出
取决于你想要什么,考虑RealthJoin,InnLyJoin等,直到你得到你正在寻找的输出。例如:
inner_join(df, impl_per_year, by = c("ExplYear" = "ImplYear"))
# A tibble: 3 x 3
ExplYear RemovalReason n
<dbl> <chr> <dbl>
1 2017 Dysfunction 14
2 2016 Infection 46
3 2016 Infection 64
。。。这将只提供两个Tibble的成功匹配。谢谢。我把@michael levin的正确答案归功于left_join,因为他早一点给出了答案&他是一个新的贡献者。至于连接列的名称,我明白你的意思,但在这种情况下,我更喜欢明确的名称,这样我以后会知道这是关于植入和植入年份的。谢谢。我把@michael levin的正确答案归功于left_join,因为他早一点给出了答案&他是一个新的贡献者。至于连接列的名称,我明白你的意思,但在这种情况下,我更喜欢明确,这样我以后的自己就会知道这是关于植入和植入年。
ExplTibble %>% left_join(ImplTibble, by = c("ExplYear" = "ImplYear"))
df <- tribble(
~ExplYear, ~RemovalReason,
2018, "Infection",
2017, "Dysfunction",
2016, "Infection")
impl_per_year <- tribble(
~ImplYear, ~n,
2017, 14,
2016, 46,
2016, 64
)
left_join(df, impl_per_year, by = c("ExplYear" = "ImplYear"))
# A tibble: 4 x 3
ExplYear RemovalReason n
<dbl> <chr> <dbl>
1 2018 Infection NA
2 2017 Dysfunction 14
3 2016 Infection 46
4 2016 Infection 64
inner_join(df, impl_per_year, by = c("ExplYear" = "ImplYear"))
# A tibble: 3 x 3
ExplYear RemovalReason n
<dbl> <chr> <dbl>
1 2017 Dysfunction 14
2 2016 Infection 46
3 2016 Infection 64