根据下面的代码和数据,如何在两个print中得到一个具有matching值的行数(count)
The number of matching records between [insert dataframe 1 name] and [insert dataframe 2 name] are X based on [insert matching column name].
我知道我可以查看控制台中的显示器来实现这一点,但我想打印上面的消息也是个好主意,特别是当涉及到大量数据集时。为此,我可能需要创建一个函数,而我的函数创建技能目前还不够完善。
代码+数据:
library(tidyverse)
# Dummy data
df1 = data.frame(v1 = c(1,2,3,4,5,6,7,8),
v2 = c("A","E","C","B","B","C","A","E"))
df2 = data.frame(v2 = c("D","E","A","C","D","B"),
v3 = c("d","e","a","c","d","b"))
# Match values
df_new = df1 %>%
mutate(v2= as.character(v2)) %>%
left_join(df2)
# Write code to print the number of matching records, stuck!!!
# The number of matching records between [insert dataframe 1 name] and [insert dataframe 2 name] are X based on [insert matching column name].发布于 2022-08-02 21:54:44
为此,我喜欢使用tidylog-package。
这个方便的包封装了大多数dplyr函数,包括*_join的函数,并为其中的几个函数(也包括filter、distinct、mutate等)提供了打印输出。
library(dplyr)
df_new <- df1 |>
mutate(v2 = as.character(v2)) |>
tidylog::left_join(df2) 输出:
Joining, by = "v2"
left_join: added one column (v3)
> rows only in x 0
> rows only in y (2)
> matched rows 8
> ===
> rows total 8https://stackoverflow.com/questions/73214067
复制相似问题