【发布时间】:2021-04-02 01:59:19
【问题描述】:
我想获得与数据框中所有其他行相等的值的数量:
library(tidyverse)
df <- tibble(
a = c(1, 1, 5, 1),
b = c(2, 3, 2, 8),
c = c(2, 6, 2, 2)
)
想要的输出:
# A tibble: 4 x 4
a b c desired_column
<dbl> <dbl> <dbl> <list>
1 1 2 2 <dbl [4]>
2 1 3 6 <dbl [4]>
3 5 2 2 <dbl [4]>
4 1 8 2 <dbl [4]>
在“desired_column”列中: 第一行:3、1、2、2:
3:是因为第一行的三个值与其自身相比是相同的
1:是因为在两行和同一列(第一和第二)中都有一个具有相同值的值:
2:第一行和第三行同一列有两个相等的值:
2:第一行和第四行同一列有两个相等的值:
“desired_column”的第二、三、四行是同一个过程的结果:
结果中的ith 数字是当前行和ith 行之间共有值的数量
【问题讨论】:
-
我不明白为什么在结果中,第一行第一个数字是
3(“与自身相比,三个值相同),但第四行(输入1, 8, 2)有一个@ 987654335@作为第一个结果编号。第4行没有重复值,为什么第一个结果编号是2? -
哦,我想我明白了。结果中的
ith 数字是当前行和ith 行之间共有值的数量! -
desired_column 的第四行第一个结果数为 2 是因为比较第 4 行 (1, 8, 2) 和第 1 行 (1, 2, 2) 时,只有两个值位于两行:1 和 2。