Hi Only I got your HTML formated mail, rest of the world got complete mess. Do not use HTML formating.
As I got it right I wonder why in your second example you did not follow 3A - 3B - 2C - 2D as D were positioned 1st and 4th. I hope that you could use something like sss <- split(data$Var.2, data$Var.1) lapply(sss, cumsum) $A [1] 38 73 105 136 166 188 199 207 209 210 $B [1] 39 67 92 115 131 146 153 159 164 168 $C [1] 40 76 105 131 152 171 189 203 213 222 $D [1] 37 71 104 131 155 175 192 205 217 220 Now you need to evaluate this result according to your sets. Here the highest value (76) is in C so the set with 2C is the one you should choose and select you value according to this set. With > set.seed(666) > Var.1 = rep(LETTERS[1:4], 10) > Var.2 = sample(1:40, replace=FALSE) > data = data.frame(Var.1, Var.2) > data <- data[order(data$Var.2, decreasing=TRUE), ] > sss <- split(data$Var.2, data$Var.1) > lapply(sss, cumsum) $A [1] 36 70 102 133 163 182 200 207 212 213 $B [1] 35 57 78 95 108 120 131 140 148 150 $C [1] 40 73 102 130 156 180 196 211 221 225 $D [1] 39 77 114 141 166 189 209 223 229 232 Highest value is in D so either 3A - 3B - 2C - 2D or 3A - 3B - 2C - 2D should be appropriate. And here I am again lost as both sets are same. Maybe you need to reconsider your statements. Cheers Petr From: Silvano Cesar da Costa <silv...@uel.br> Sent: Friday, August 20, 2021 9:28 PM To: PIKAL Petr <petr.pi...@precheza.cz> Cc: r-help@r-project.org Subject: Re: [R] Selecting elements Hi, thanks you for the answer. Sorry English is not my native language. But you got it right. > As C is first and fourth biggest value, you follow third option and select 3 > highest A, 3B 2C and 2D? I must select the 10 (not 15) highest values, but which follow a certain order: 3A - 3B - 2C - 2D or 2A - 5B - 0C - 3D or 3A - 3B - 2C - 2D I'll put the example in Excel for a better understanding (with 20 elements only). I must select 10 elements (the highest values of variable Var.2), which fit one of the 3 options above. Number Position Var.1 Var.2 1 27 C 40 2 30 B 39 Selected: 3 5 A 38 Number Position Var.1 Var.2 4 16 D 37 1 27 C 40 5 23 C 36 2 30 B 39 3A - 3B - 2C - 2D 6 13 A 35 3 5 A 38 7 20 D 34 4 16 D 37 3A - 3B - 1C - 3D 8 12 D 33 5 23 C 36 9 9 A 32 6 13 A 35 2A - 5B - 0C - 3D 10 1 A 31 7 20 D 34 11 21 A 30 10 9 A 32 12 35 C 29 13 14 B 28 13 14 B 28 17 6 B 25 14 8 D 27 15 7 C 26 16 6 B 25 17 40 D 24 18 26 B 23 19 29 A 22 20 31 C 21 Second option (other data set): Number Position Var.1 Var.2 1 36 D 20 2 11 B 19 Selected: 3 39 A 18 Number Position Var.1 Var.2 4 24 D 17 1 36 D 20 5 34 B 16 2 11 B 19 3A - 3B - 2C - 2D 6 2 B 15 3 39 A 18 7 3 A 14 4 24 D 17 3A - 3B - 1C - 3D 8 32 D 13 5 34 B 16 9 28 D 12 6 2 B 15 2A - 5B - 0C - 3D 10 25 A 11 7 3 A 14 11 19 B 10 8 32 D 13 12 15 B 9 9 25 A 11 13 17 A 8 10 18 C 7 14 18 C 7 15 38 B 6 16 10 B 5 17 22 B 4 18 4 D 3 19 33 A 2 20 37 A 1 How to make the selection of these 10 elements that fit one of the 3 options using R? Thanks, Prof. Dr. Silvano Cesar da Costa Universidade Estadual de Londrina Centro de Ciências Exatas Departamento de Estatística Fone: (43) 3371-4346 Em sex., 20 de ago. de 2021 às 03:28, PIKAL Petr <mailto:petr.pi...@precheza.cz> escreveu: Hallo I am confused, maybe others know what do you want but could you be more specific? Let say you have such data set.seed(123) Var.1 = rep(LETTERS[1:4], 10) Var.2 = sample(1:40, replace=FALSE) data = data.frame(Var.1, Var.2) What should be the desired outcome? You can sort data <- data[order(data$Var.2, decreasing=TRUE), ] and split the data > split(data$Var.2, data$Var.1) $A [1] 38 35 32 31 30 22 11 8 2 1 $B [1] 39 28 25 23 16 15 7 6 5 4 $C [1] 40 36 29 26 21 19 18 14 10 9 $D [1] 37 34 33 27 24 20 17 13 12 3 T inspect highest values. But here I am lost. As C is first and fourth biggest value, you follow third option and select 3 highest A, 3B 2C and 2D? Or I do not understand at all what you really want to achieve. Cheers Petr > -----Original Message----- > From: R-help <mailto:r-help-boun...@r-project.org> On Behalf Of Silvano Cesar > da > Costa > Sent: Thursday, August 19, 2021 10:40 PM > To: mailto:r-help@r-project.org > Subject: [R] Selecting elements > > Hi, > > I need to select 15 elements, always considering the highest values > (descending order) but obeying the following configuration: > > 3A - 4B - 0C - 3D or > 2A - 5B - 0C - 3D or > 3A - 3B - 2C - 2D > > If I have, for example, 5 A elements as the highest values, I can only choose > (first and third choice) or 2 (second choice) elements. > > how to make this selection? > > > library(dplyr) > > Var.1 = rep(LETTERS[1:4], 10) > Var.2 = sample(1:40, replace=FALSE) > > data = data.frame(Var.1, Var.2) > (data = data[order(data$Var.2, decreasing=TRUE), ]) > > Elements = data %>% > arrange(desc(Var.2)) > > Thanks, > > Prof. Dr. Silvano Cesar da Costa > Universidade Estadual de Londrina > Centro de Ciências Exatas > Departamento de Estatística > > Fone: (43) 3371-4346 > > [[alternative HTML version deleted]] > > ______________________________________________ > mailto:R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting- > guide.html > and provide commented, minimal, self-contained, reproducible code.
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.