r语言 - 创建2个变量,给我var1_A到var1_E的值对应于var2_A到var2_E的最大值 &g



我有一个类似于通过下面的代码创建的数据集(这是一个真实数据集的示例)。

我需要创建两个列(命名为"ideol_1"还有ideol_2,这就给出了ideolparty的值;对应于"pcv_PR"列中字母相似的两个最高的列(A:E)。因此,如果pcv_PR_A中pcv_PR_A和pcv_PR_E的值最高,则ideolparty_A"应该在"思想"一栏。对于这一行,如果pcv_PR_B是第二高的,那么"ideol1";应该产生"ideolpartyB"的值

制作样本数据:

structure(list(election = c("ARG_2015", "ARG_2015", "ARG_2015", 
"ARG_2015", "ARG_2015", "ARG_2015", "ARG_2015", "BRA_2002", "BRA_2002", 
"BRA_2002", "BRA_2002", "BRA_2002", "BRA_2002", "BRA_2002", "BRA_2002", 
"BRA_2002", "BRA_2006", "BRA_2006", "BRA_2006", "BRA_2006", "BRA_2006", 
"BRA_2010", "BRA_2010", "BRA_2010", "BRA_2010", "BRA_2010", "BRA_2010", 
"BRA_2010", "BRA_2010", "BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", 
"BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", 
"BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", "BRA_2014", 
"BRA_2014", "BRA_2014", "CHL_1999", "CHL_1999", "CHL_1999", "CHL_2005", 
"CHL_2005", "CHL_2005", "CHL_2005", "CHL_2005", "CHL_2005", "CHL_2005", 
"CHL_2009", "CHL_2009", "CHL_2009", "CHL_2009", "CHL_2009", "CHL_2009", 
"CHL_2009", "FRA_2002", "FRA_2002", "FRA_2002", "FRA_2002", "FRA_2012", 
"FRA_2012", "FRA_2012", "FRA_2012", "FRA_2012", "FRA_2012", "FRA_2012", 
"FRA_2012", "FRA_2012", "FRA_2012", "FRA_2012", "LTU_1997", "LTU_1997", 
"LTU_1997", "LTU_1997", "PER_2000", "PER_2000", "PER_2000", "PER_2000", 
"PER_2000", "PER_2001", "PER_2001", "PER_2001", "PER_2001", "PER_2006", 
"PER_2006", "PER_2006", "PER_2006", "PER_2006", "PER_2006", "PER_2006", 
"PER_2006", "PER_2006", "PER_2011", "PER_2011", "PER_2011", "PER_2011", 
"PER_2011", "PER_2011", "PER_2011", "PER_2011", "PER_2011", "PER_2016", 
"PER_2016", "PER_2016", "PER_2016", "PER_2016", "PER_2016", "PER_2016", 
"PER_2016", "ROU_1996", "ROU_1996", "ROU_1996", "ROU_1996", "ROU_1996", 
"ROU_2004", "ROU_2004", "ROU_2004", "ROU_2004", "ROU_2004", "ROU_2004", 
"ROU_2004", "ROU_2004", "ROU_2004", "ROU_2009", "ROU_2009", "ROU_2009", 
"ROU_2014", "ROU_2014", "SRB_2012", "SRB_2012", "SRB_2012", "SRB_2012", 
"SRB_2012", "SRB_2012", "SRB_2012", "SRB_2012", "URY_2009", "URY_2009", 
"URY_2009", "URY_2009", "URY_2009"), pcv_PR_A = c(37.08, 37.08, 
37.08, 37.08, 37.08, 37.08, 37.08, 46.4, 46.4, 46.4, 46.4, 46.4, 
46.4, 46.4, 46.4, 46.4, NA, NA, NA, NA, NA, 46.91, 46.91, 46.91, 
46.91, 46.91, 46.91, 46.91, 46.91, 41.59, 41.59, 41.59, 41.59, 
41.59, 41.59, 41.59, 41.59, 41.59, 41.59, 41.59, 41.59, 41.59, 
41.59, 41.59, 41.59, 41.59, 41.59, 47.9, 47.9, 47.9, 23.23, 23.23, 
23.23, 23.23, 23.23, 23.23, 23.23, NA, NA, NA, NA, NA, NA, NA, 
19.88, 19.88, 19.88, 19.88, 28.63, 28.63, 28.63, 28.63, 28.63, 
28.63, 28.63, 28.63, 28.63, 28.63, 28.63, 44.7, 44.7, 44.7, 44.7, 
49.9, 49.9, 49.9, 49.9, 49.9, 36.5, 36.5, 36.5, 36.5, 30.62, 
30.62, 30.62, 30.62, 30.62, 30.62, 30.62, 30.62, 30.62, 31.7, 
31.7, 31.7, 31.7, 31.7, 31.7, 31.7, 31.7, 31.7, 39.86, 39.86, 
39.86, 39.86, 39.86, 39.86, 39.86, 39.86, 28.2, 28.2, 28.2, 28.2, 
28.2, 40.94, 40.94, 40.94, 40.94, 40.94, 40.94, 40.94, 40.94, 
40.94, 32.44, 32.44, 32.44, 40.44, 40.44, 25.05, 25.05, 25.05, 
25.05, 25.05, 25.05, 25.05, 25.05, 47.96, 47.96, 47.96, 47.96, 
47.96), pcv_PR_B = c(34.15, 34.15, 34.15, 34.15, 34.15, 34.15, 
34.15, 23.2, 23.2, 23.2, 23.2, 23.2, 23.2, 23.2, 23.2, 23.2, 
48.6, 48.6, 48.6, 48.6, 48.6, NA, NA, NA, NA, NA, NA, NA, NA, 
33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 
33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 33.54, 
47.5, 47.5, 47.5, NA, NA, NA, NA, NA, NA, NA, 44.06, 44.06, 44.06, 
44.06, 44.06, 44.06, 44.06, 16.86, 16.86, 16.86, 16.86, 27.18, 
27.18, 27.18, 27.18, 27.18, 27.18, 27.18, 27.18, 27.18, 27.18, 
27.18, 27.6, 27.6, 27.6, 27.6, 40.2, 40.2, 40.2, 40.2, 40.2, 
25.7, 25.7, 25.7, 25.7, 24.32, 24.32, 24.32, 24.32, 24.32, 24.32, 
24.32, 24.32, 24.32, 23.55, 23.55, 23.55, 23.55, 23.55, 23.55, 
23.55, 23.55, 23.55, 21.05, 21.05, 21.05, 21.05, 21.05, 21.05, 
21.05, 21.05, 32.2, 32.2, 32.2, 32.2, 32.2, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 31.15, 31.15, 31.15, 30.37, 30.37, 25.31, 25.31, 
25.31, 25.31, 25.31, 25.31, 25.31, 25.31, 29.07, 29.07, 29.07, 
29.07, 29.07), pcv_PR_C = c(21.39, 21.39, 21.39, 21.39, 21.39, 
21.39, 21.39, NA, NA, NA, NA, NA, NA, NA, NA, NA, 41.6, 41.6, 
41.6, 41.6, 41.6, 32.61, 32.61, 32.61, 32.61, 32.61, 32.61, 32.61, 
32.61, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 3.6, 3.6, 3.6, NA, NA, NA, NA, NA, NA, NA, 29.6, 
29.6, 29.6, 29.6, 29.6, 29.6, 29.6, 16.18, 16.18, 16.18, 16.18, 
17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 
15.7, 15.7, 15.7, 15.7, NA, NA, NA, NA, NA, 24.3, 24.3, 24.3, 
24.3, 23.81, 23.81, 23.81, 23.81, 23.81, 23.81, 23.81, 23.81, 
23.81, 18.5, 18.5, 18.5, 18.5, 18.5, 18.5, 18.5, 18.5, 18.5, 
18.74, 18.74, 18.74, 18.74, 18.74, 18.74, 18.74, 18.74, 20.5, 
20.5, 20.5, 20.5, 20.5, 33.92, 33.92, 33.92, 33.92, 33.92, 33.92, 
33.92, 33.92, 33.92, 20.02, 20.02, 20.02, 5.2, 5.2, 14.23, 14.23, 
14.23, 14.23, 14.23, 14.23, 14.23, 14.23, 17.02, 17.02, 17.02, 
17.02, 17.02), pcv_PR_D = c(3.23, 3.23, 3.23, 3.23, 3.23, 3.23, 
3.23, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.5, 0.5, 0.5, 25.41, 
25.41, 25.41, 25.41, 25.41, 25.41, 25.41, NA, NA, NA, NA, NA, 
NA, NA, 6.84, 6.84, 6.84, 6.84, 11.1, 11.1, 11.1, 11.1, 11.1, 
11.1, 11.1, 11.1, 11.1, 11.1, 11.1, 5.7, 5.7, 5.7, 5.7, 3.1, 
3.1, 3.1, 3.1, 3.1, 9.8, 9.8, 9.8, 9.8, 7.43, 7.43, 7.43, 7.43, 
7.43, 7.43, 7.43, 7.43, 7.43, 15.63, 15.63, 15.63, 15.63, 15.63, 
15.63, 15.63, 15.63, 15.63, NA, NA, NA, NA, NA, NA, NA, NA, 6, 
6, 6, 6, 6, 12.57, 12.57, 12.57, 12.57, 12.57, 12.57, 12.57, 
12.57, 12.57, 5.56, 5.56, 5.56, 4.03, 4.03, 7.44, 7.44, 7.44, 
7.44, 7.44, 7.44, 7.44, 7.44, 2.49, 2.49, 2.49, 2.49, 2.49), 
pcv_PR_E = c(2.51, 2.51, 2.51, 2.51, 2.51, 2.51, 2.51, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, 2.6, 2.6, 2.6, 2.6, 2.6, 
NA, NA, NA, NA, NA, NA, NA, NA, 21.32, 21.32, 21.32, 21.32, 
21.32, 21.32, 21.32, 21.32, 21.32, 21.32, 21.32, 21.32, 21.32, 
21.32, 21.32, 21.32, 21.32, 21.32, 0.4, 0.4, 0.4, 45.96, 
45.96, 45.96, 45.96, 45.96, 45.96, 45.96, NA, NA, NA, NA, 
NA, NA, NA, 5.72, 5.72, 5.72, 5.72, 9.13, 9.13, 9.13, 9.13, 
9.13, 9.13, 9.13, 9.13, 9.13, 9.13, 9.13, 4, 4, 4, 4, 0.4, 
0.4, 0.4, 0.4, 0.4, 1.6, 1.6, 1.6, 1.6, 5.75, 5.75, 5.75, 
5.75, 5.75, 5.75, 5.75, 5.75, 5.75, 9.83, 9.83, 9.83, 9.83, 
9.83, 9.83, 9.83, 9.83, 9.83, 5.83, 5.83, 5.83, 5.83, 5.83, 
5.83, 5.83, 5.83, 4.7, 4.7, 4.7, 4.7, 4.7, 5.1, 5.1, 5.1, 
5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 3.83, 3.83, 3.83, 3.68, 3.68, 
5.03, 5.03, 5.03, 5.03, 5.03, 5.03, 5.03, 5.03, 0.67, 0.67, 
0.67, 0.67, 0.67), pcv_PR_F = c(1.64, 1.64, 1.64, 1.64, 1.64, 
1.64, 1.64, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 17.9, 
17.9, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 0.3, 0.3, 0.3, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, 5.33, 5.33, 5.33, 5.33, 2.31, 2.31, 
2.31, 2.31, 2.31, 2.31, 2.31, 2.31, 2.31, 2.31, 2.31, 0.9, 
0.9, 0.9, 0.9, 1.8, 1.8, 1.8, 1.8, 1.8, 0.8, 0.8, 0.8, 0.8, 
4.38, 4.38, 4.38, 4.38, 4.38, 4.38, 4.38, 4.38, 4.38, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, 6.97, 6.97, 6.97, 6.97, 6.97, 
6.97, 6.97, 6.97, 3.2, 3.2, 3.2, 3.2, 3.2, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, 3.18, 3.18, 3.18, 3.47, 3.47, 6.58, 6.58, 
6.58, 6.58, 6.58, 6.58, 6.58, 6.58, NA, NA, NA, NA, NA), 
pcv_PR_G = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, 6.21, 6.21, 6.21, 6.21, 6.21, 6.21, 6.21, 5.25, 5.25, 
5.25, 5.25, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
4, 4, 4, 4, 4, 4, 4, 4, NA, NA, NA, NA, NA, 1.8, 1.8, 1.8, 
1.8, 1.8, 1.8, 1.8, 1.8, 1.8, 1.91, 1.91, 1.91, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), pcv_PR_H = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 20.14, 20.14, 
20.14, 20.14, 20.14, 20.14, 20.14, 3.91, 3.91, 3.91, 3.91, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1.3, 1.3, 
1.3, 1.3, 1.3, 1.3, 1.3, 1.3, NA, NA, NA, NA, NA, 1.9, 1.9, 
1.9, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9, NA, NA, NA, 5.36, 5.36, 
1.62, 1.62, 1.62, 1.62, 1.62, 1.62, 1.62, 1.62, NA, NA, NA, 
NA, NA), pcv_PR_I = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, 6.85, 6.85, 6.85, 6.85, 6.85, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.37, 
3.37, 3.37, 3.37, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, 1.32, 1.32, 1.32, 1.32, 1.32, 1.32, 1.32, 1.32, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, 4.44, 4.44, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA), ideolparty_A = c(2, 10, 4, NA, 5, 5, 6, NA, 0, 8, 
10, 0, 10, 0, 10, 7, NA, NA, NA, NA, NA, NA, NA, 10, NA, 
NA, 10, NA, 1, 3, 2, 9, NA, 0, NA, 1, NA, NA, 4, NA, NA, 
3, NA, NA, 3, 3, NA, NA, NA, NA, 10, 10, NA, NA, 3, 10, NA, 
NA, NA, NA, NA, NA, NA, NA, 7, 3, 3, 6, 2, 7, 3, 2, 2, 4, 
2, 0, 4, 2, 7, NA, NA, NA, NA, 8, 3, 2, 5, 0, 8, 2, 10, 0, 
0, NA, 6, NA, 5, 0, 8, 2, 1, 0, 0, 5, 3, 0, NA, 4, 3, NA, 
0, 0, 5, NA, 10, 5, 8, 5, 5, 6, NA, NA, 3, 0, 1, 4, 7, NA, 
NA, 6, NA, NA, 10, 5, 9, NA, NA, 6, 5, 4, 3, 5, 4, NA, 6, 
2, 10, 0, NA, 3), ideolparty_B = c(7.5, 1, 7, NA, 7.5, 8.5, 
5, NA, 7, 9, 10, NA, 10, 2, 6, 6, 3, 0, 10, 0, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, 8, 8, 3, NA, 9, NA, 10, NA, NA, 4, 
NA, NA, 7, NA, NA, 7, 7, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 10, 10, 0, 10, 9, 9, 10, 2, 10, 10, 10, 9, 6, 
7, 8, 8, 9, 8, 10, 7, 5, 8, NA, NA, NA, NA, 10, 8, 5, 5, 
10, 8, 1, 2, 0, 10, NA, 7, NA, 7, 5, 6, 5, 2, 8, 10, 6, 9, 
9, NA, 5, 5, 8, 5, 0, 10, NA, 7, 6, 7, 9, 6, 1, NA, NA, 4, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, 8, 1, NA, NA, 3, 5, 
4, 2, 5, 0, NA, 3, 8, 0, 8, NA, 8), ideolparty_C = c(6, 1, 
5, NA, 10, 7, 5, NA, NA, NA, NA, NA, NA, NA, NA, NA, 7, 10, 
0, 10, NA, NA, NA, 10, NA, NA, 1, NA, 4, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, 5, 5, 6, 6, 5, 2, 2, 
8, 0, 8, 5, 9, 10, 10, 9, 8, 10, 10, 10, 10, 10, 7, 4, 4, 
10, NA, NA, NA, NA, NA, NA, 8, 1, 0, 3, 10, NA, 3, NA, 8, 
6, 5, 9, NA, 7, 10, 7, 6, 5, NA, 8, NA, 4, 5, 0, 5, NA, 0, 
2, 9, 10, 8, 1, NA, NA, 5, 10, 8, 6, 3, NA, NA, 6, NA, NA, 
10, 8, 7, NA, NA, 2, 0, 4, 2, 5, 3, NA, 3, 8, 0, 5, NA, 9
), ideolparty_D = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 9, 9, NA, NA, 3, 
10, NA, NA, NA, NA, NA, NA, NA, NA, 6, 5, NA, 7, 0, 7, 1, 
1, 0, 2, 4, 2, 2, 2, 5, 4, 4, 8, NA, 2, 7, 4, 3, NA, 5, 3, 
1, 3, 5, NA, 2, NA, 8, 4, 5, 4, 1, 10, 10, 6, 10, 6, NA, 
10, 6, 6, NA, NA, NA, NA, NA, NA, NA, NA, 1, 1, NA, NA, NA, 
0, 0, 0, 0, NA, NA, 6, NA, NA, 5, 5, 2, NA, NA, 4, 9, 4, 
1, 5, 4, NA, 4, 6, 0, 2, NA, 3), ideolparty_E = c(9, 0, 7, 
NA, 6, 5, 5, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4, 2, 10, 
0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5, 4, NA, 3, NA, 
1, NA, NA, 5, NA, NA, 4, NA, NA, 5, 5, NA, NA, NA, NA, 1, 
2, NA, NA, 7, 1, NA, NA, NA, NA, NA, NA, NA, NA, 7, 2, 8, 
4, 5, NA, 5, 6, 4, 8, 6, 3, 5, NA, 5, NA, 4, 8, NA, 6, 4, 
4, 2, NA, 5, 1, 2, NA, 5, NA, 1, NA, 3, 5, 4, 5, 0, 5, 10, 
5, 7, 6, NA, 9, NA, 7, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 0, 0, 8, 5, NA, NA, 6, NA, NA, 5, 5, 6, NA, 
NA, 4, 5, 4, 1, 5, 0, NA, 3, 1, 0, 1, NA, 0), ideol1 = c(NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, 
-150L), class = "data.frame")

输出将是这样的(对于一些随机的行,看看它是如何不同的输入"pcv"one_answers"ideol"

# A tibble: 6 x 13
election ideol1 ideol2 ideolparty_A ideolparty_B ideolparty_C ideolparty_D ideolparty_E pcv_PR_A pcv_PR_B pcv_PR_C pcv_PR_D pcv_PR_E
<chr>     <dbl>  <dbl>        <dbl>        <dbl>        <dbl>        <dbl>        <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
1 CHL_2009     10      6           NA           10            6           NA           NA     NA       44.1     29.6     NA       NA  
2 ROU_2004     NA     NA           NA           NA           NA           NA           NA     40.9     NA       33.9     12.6      5.1
3 BRA_2002      0      7            0            7           NA           NA           NA     46.4     23.2     NA       NA       NA  
4 BRA_2006      0     10           NA            0           10           NA            2     NA       48.6     41.6     NA        2.6
5 CHL_2005     NA     NA           NA           NA           NA           NA           NA     23.2     NA       NA       25.4     46.0
6 CHL_1999     NA     NA           NA           NA           NA           NA           NA     47.9     47.5      3.6      0.5      0.4

以下是pivot_longerpivot_wider的一个想法:

out <- df %>% 
mutate(row = row_number()) %>%
pivot_longer(cols = contains("pcv_PR"),
names_to = "name", 
values_to = "value") %>%
group_by(row) %>%
arrange(row, desc(value)) %>% 
mutate(ideol1 = get(paste0("ideolparty_",
substr(name[1], nchar(name[1]), nchar(name[1])))),
ideol2 = get(paste0("ideolparty_",
substr(name[2], nchar(name[2]), nchar(name[2]))))) %>%
ungroup() %>%
pivot_wider(id_cols = -c(name, value),
names_from = name, 
values_from = value)

下面是结果的剪辑:

> head(out %>%
+            select(-contains(c("ideolparty", "row"))))
# A tibble: 6 x 12
election ideol1 ideol2 pcv_PR_B pcv_PR_C pcv_PR_H pcv_PR_G pcv_PR_A pcv_PR_D pcv_PR_E pcv_PR_F pcv_PR_I
<chr>     <dbl>  <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
1 CHL_2009     10      5     44.1     29.6    20.1      6.21     NA      NA       NA       NA          NA
2 ROU_1996      6      5     32.2     20.5    NA       NA        28.2     6        4.7      3.2        NA
3 PER_2006      0     10     24.3     23.8    NA       NA        30.6     7.43     5.75     4.38       NA
4 BRA_2014      3      8     33.5     NA      NA       NA        41.6    NA       21.3     NA          NA
5 PER_2011      0      8     23.6     18.5    NA       NA        31.7    15.6      9.83    NA          NA
6 SRB_2012      3      6     25.3     14.2     1.62    NA        25.0     7.44     5.03     6.58       NA

最新更新