我目前正在使用一个包含大约 20 列和很多行的大型数据框。
简化后可以如下所示:
letter = c("A", "A", "A", "B", "B", "B", "C", "C", "C", "C", "A", "A", "A", "B", "B", "B", "C")
number = c(1,2,3,1,2,1,2,3,2,1,2,3,2,2,3,2,1)\
value1 = c(1:17)
value2 = seq(18, 50, 2)
df = data.frame(letter, number, value1, value2)
我想对特定的值集进行一些计算。这些是字母和数字的独特组合。因此,所有具有字母 A 和数字 1 的值都可以求和、计数(或 count_not_zero)、取最小值或其他(更复杂的)计算。我的目标是用这些独特的组合及其计算制作一个新的数据框。
letter number value1.sum value1.count .. value2.max value2.elaborate
A 1 1 1 .. 18 0.56
A 2 26 3 .. 42 0.40
A 3 15 2 .. 40 0.44
B 1 .. .. .. .. ..
.. .. .. .. .. .. ..
C 2 16 2 .. 34 0.44
C 3 8 1 .. 32 0.50
我尝试以多种方式做到这一点。例如,用字母 A(在这种情况下)制作一个矩阵列表,然后在选择单个字母时使用聚合。然而,这变得非常大。
我尝试了几种 DPLYR 包的组合,但很难进行不同类型的计算,尤其是自制的。