【发布时间】:2020-03-09 13:53:41
【问题描述】:
有没有办法并排查看列表?我正在比较同一数据集的两个版本,并希望查看变量的摘要打印。理想情况下,提供两个以上数据集的能力会很好,如果有额外的变量不在其中一个数据集中,这些变量将位于输出的末尾。
library(tidyverse)
library(janitor)
df1 <- data.frame(var1 = c("a", "b"),
var2 = c("A", "B"),
var3 = c("checking"))
df1
df2 <- data.frame(var1 = letters,
var2 = LETTERS,
var4 = c("testing"))
df2
ll <- lst(df1, df2)
compare_these_lists <- map(ll, ~dplyr::select_if(.x, is.factor) %>% map(., tabyl))
compare_these_lists
我想要的结果如下,每个变量都是对齐的,因此可以很容易地进行比较:
$df1 $df2
$df1$var1 $df2$var1
.x[[i]] n percent .x[[i]] n percent
a 1 0.5 a 1 0.03846154
b 1 0.5 b 1 0.03846154
c 1 0.03846154
d 1 0.03846154
e 1 0.03846154
f 1 0.03846154
g 1 0.03846154
h 1 0.03846154
i 1 0.03846154
j 1 0.03846154
k 1 0.03846154
l 1 0.03846154
m 1 0.03846154
n 1 0.03846154
o 1 0.03846154
p 1 0.03846154
q 1 0.03846154
r 1 0.03846154
s 1 0.03846154
t 1 0.03846154
u 1 0.03846154
v 1 0.03846154
w 1 0.03846154
x 1 0.03846154
y 1 0.03846154
z 1 0.03846154
$df1$var2 $df2$var2
.x[[i]] n percent .x[[i]] n percent
A 1 0.5 A 1 0.03846154
B 1 0.5 B 1 0.03846154
C 1 0.03846154
D 1 0.03846154
E 1 0.03846154
F 1 0.03846154
G 1 0.03846154
H 1 0.03846154
I 1 0.03846154
J 1 0.03846154
K 1 0.03846154
L 1 0.03846154
M 1 0.03846154
N 1 0.03846154
O 1 0.03846154
P 1 0.03846154
Q 1 0.03846154
R 1 0.03846154
S 1 0.03846154
T 1 0.03846154
U 1 0.03846154
V 1 0.03846154
W 1 0.03846154
X 1 0.03846154
Y 1 0.03846154
Z 1 0.03846154
$df1$var3
.x[[i]] n percent
checking 2 1
$df2$var4
.x[[i]] n percent
testing 26 1
我能找到的唯一类似问题是here,它已经很老了,但变量在那个解决方案中会跳来跳去,所以它们不会对齐,如果你有很多变量,就很难比较。
是否已经有一个功能可以做这样的事情或任何好的解决方法?我在想purrr 可能会这样做。
谢谢
【问题讨论】:
-
您应该能够通过正确的变量使用
left_join并使用select来根据需要组织列。