排序相关列表
Sorted Correlation List
在 Fedora 30 上使用 R Studio 1.2.1335。我使用 cor_numcols <- cor(numcols[1:37],numcols$SalePrice,use="complete.obs")
创建了我的数据集,它默认按列名排序。我需要能够按相关值对数据进行排序。我试过 cor_numcols_min <-which(cor_numcols<=sort(cor_numcols)[5], arr.ind = FALSE)
生成一个包含行号和列号的数据集,而不是相关值。我也试过 sort.default(cor_numcols,decreasing = TRUE)
它只生成一个排序的相关值列表,没有它们关联的列。
what I would like to get
What I would like to get, second try
what I get
不确定这是否是包含数据的最佳方式,但这里是
示例数据
"";"Id";"MSSubClass";"LotFrontage";"LotArea";"OverallQual";"OverallCond";"YearBuilt"; "YearRemodAdd";"MasVnrArea";"BsmtFinSF1";"BsmtFinSF2";"BsmtUnfSF";"TotalBsmtSF";“1stFlrSF”;“2ndFlrSF”;"LowQualFinSF"; "GrLivArea";"BsmtFullBath";"BsmtHalfBath";"FullBath";"HalfBath";"BedroomAbvGr";"KitchenAbvGr";"TotRmsAbvGrd";"Fireplaces";"GarageYrBlt";"GarageCars";"GarageArea";"WoodDeckSF";"OpenPorchSF";"EnclosedPorch";"SsnPorch";"ScreenPorch";"PoolArea";"MiscVal";"MoSold";"YrSold";"SalePrice"
"1";1;60;65;8450;7;5;2003;2003;196;706;0;150;856;856;854;0;1710;1;0;2;1;3;1; 8;0;2003;2;548;0;61;0;0;0;0;0;2;2008;208500
"2";2;20;80;9600;6;8;1976;1976;0;978;0;284;1262;1262;0;0;1262;0;1;2;0;3;1; 6;1;1976;2;460;298;0;0;0;0;0;0;5;2007;181500
"3";3;60;68;11250;7;5;2001;2002;162;486;0;434;920;920;866;0;1786;1;0;2;1;3;1; 6;1;2001;2;608;0;42;0;0;0;0;0;9;2008;223500
"4";4;70;60;9550;7;5;1915;1970;0;216;0;540;756;961;756;0;1717;1;0;1;0;3;1; 7;1;1998;3;642;0;35;272;0;0;0;0;2;2006;140000
"5";5;60;84;14260;8;5;2000;2000;350;655;0;490;1145;1145;1053;0;2198;1;0;2;1;4;1; 9;1;2000;3;836;192;84;0;0;0;0;0;12;2008;250000
"6";6;50;85;14115;5;5;1993;1995;0;732;0;64;796;796;566;0;1362;1;0;1;1;1;1; 5;0;1993;2;480;40;30;0;320;0;0;700;10;2009;143000
"7";7;20;75;10084;8;5;2004;2005;186;1369;0;317;1686;1694;0;0;1694;1;0;2;0;3;1; 7;1;2004;2;636;255;57;0;0;0;0;0;8;2007;307000
"8";8;60;NA;10382;7;6;1973;1973;240;859;32;216;1107;1107;983;0;2090;1;0;2;1;3;1; 7;2;1973;2;484;235;204;228;0;0;0;350;11;2009;2e+05
"9";9;50;51;6120;7;5;1931;1950;0;0;0;952;952;1022;752;0;1774;0;0;2;0;2;2; 8;2;1931;2;468;90;0;205;0;0;0;0;4;2008;129900
"10";10;190;50;7420;5;6;1939;1950;0;851;0;140;991;1077;0;0;1077;1;0;1;0;2;2; 5;2;1939;1;205;0;4;0;0;0;0;0;1;2008;118000
"11";11;20;70;11200;5;5;1965;1965;0;906;0;134;1040;1040;0;0;1040;1;0;1;0;3;1; 5;0;1965;1;384;0;0;0;0;0;0;0;2;2008;129500
"12";12;60;85;11924;9;5;2005;2006;286;998;0;177;1175;1182;1142;0;2324;1;0;3;0;4;1; 11;2;2005;3;736;147;21;0;0;0;0;0;7;2006;345000
"13";13;20;NA;12968;5;6;1962;1962;0;737;0;175;912;912;0;0;912;1;0;1;0;2;1; 4;0;1962;1;352;140;0;0;0;176;0;0;9;2008;144000
“14”;14;20;91;10652;7;5;2006;2007;306;0;0;1494;1494;1494;0;0;1494;0;0;2;0;3;1; 7;1;2006;3;840;160;33;0;0;0;0;0;8;2007;279500
"15";15;20;NA;10920;6;5;1960;1960;212;733;0;520;1253;1253;0;0;1253;1;0;1;1;2;1; 5;1;1960;1;352;0;213;176;0;0;0;0;5;2008;157000
"16";16;45;51;6120;7;8;1929;2001;0;0;0;832;832;854;0;0;854;0;0;1;0;2;1; 5;0;1991;2;576;48;112;0;0;0;0;0;7;2007;132000
"17";17;20;NA;11241;6;7;1970;1970;180;578;0;426;1004;1004;0;0;1004;1;0;1;0;2;1; 5;1;1970;2;480;0;0;0;0;0;0;700;3;2010;149000
"18";18;90;72;10791;4;5;1967;1967;0;0;0;0;0;1296;0;0;1296;0;0;2;0;2;2; 6;0;1967;2;516;0;0;0;0;0;0;500;10;2006;90000
"19";19;20;66;13695;5;5;2004;2004;0;646;0;468;1114;1114;0;0;1114;1;0;1;1;3;1; 6;0;2004;2;576;0;102;0;0;0;0;0;6;2008;159000
"20";20;20;70;7560;5;6;1958;1965;0;504;0;525;1029;1339;0;0;1339;0;0;1;0;3;1; 6;0;1958;1;294;0;0;0;0;0;0;0;5;2009;139000
"21";21;60;101;14215;8;5;2005;2006;380;0;0;1158;1158;1158;1218;0;2376;0;0;3;1;4;1; 9;1;2005;3;853;240;154;0;0;0;0;0;11;2006;325300
"22";22;45;57;7449;7;7;1930;1950;0;0;0;637;637;1108;0;0;1108;0;0;1;0;3;1; 6;1;1930;1;280;0;0;205;0;0;0;0;6;2007;139400
"23";23;20;75;9742;8;5;2002;2002;281;0;0;1777;1777;1795;0;0;1795;0;0;2;0;3;1; 7;1;2002;2;534;171;159;0;0;0;0;0;9;2008;230000
"24";24;120;44;4224;5;7;1976;1976;0;840;0;200;1040;1060;0;0;1060;1;0;1;0;3;1; 6;1;1976;2;572;100;110;0;0;0;0;0;6;2007;129900
"25";25;20;NA;8246;5;8;1968;2001;0;188;668;204;1060;1060;0;0;1060;1;0;1;0;3;1; 6;1;1968;1;270;406;90;0;0;0;0;0;5;2010;154000
"26";26;20;110;14230;8;5;2007;2007;640;0;0;1566;1566;1600;0;0;1600;0;0;2;0;3;1; 7;1;2007;3;890;0;56;0;0;0;0;0;7;2009;256300
"27";27;20;60;7200;5;7;1951;2000;0;234;486;180;900;900;0;0;900;0;1;1;0;3;1; 5;0;2005;2;576;222;32;0;0;0;0;0;5;2010;134800
"28";28;20;98;11478;8;5;2007;2008;200;1218;0;486;1704;1704;0;0;1704;1;0;2;0;3;1; 7;1;2008;3;772;0;50;0;0;0;0;0;5;2010;306000
"29";29;20;47;16321;5;6;1957;1997;0;1277;0;207;1484;1600;0;0;1600;1;0;1;0;2;1; 6;2;1957;1;319;288;258;0;0;0;0;0;12;2006;207500
"30";30;30;60;6324;4;6;1927;1950;0;0;0;520;520;520;0;0;520;0;0;1;0;1;1; 4;0;1920;1;240;49;0;87;0;0;0;0;5;2008;68500
"31";31;70;50;8500;4;4;1920;1950;0;0;0;649;649;649;668;0;1317;0;0;1;0;3;1; 6;0;1920;1;250;0;54;172;0;0;0;0;7;2008;40000
"32";32;20;NA;8544;5;6;1966;2006;0;0;0;1228;1228;1228;0;0;1228;0;0;1;1;3;1; 6;0;1966;1;271;0;65;0;0;0;0;0;6;2008;149350
"33";33;20;85;11049;8;5;2007;2007;0;0;0;1234;1234;1234;0;0;1234;0;0;2;0;3;1; 7;0;2007;2;484;0;30;0;0;0;0;0;1;2008;179900
"34";34;20;70;10552;5;5;1959;1959;0;1018;0;380;1398;1700;0;0;1700;0;1;1;1;4;1; 6;1;1959;2;447;0;38;0;0;0;0;0;4;2010;165500
"35";35;120;60;7313;9;5;2005;2005;246;1153;0;408;1561;1561;0;0;1561;1;0;2;0;2;1; 6;1;2005;2;556;203;47;0;0;0;0;0;8;2007;277500
"36";36;60;108;13418;8;5;2004;2005;132;0;0;1117;1117;1132;1320;0;2452;0;0;3;1;4;1; 9;1;2004;3;691;113;32;0;0;0;0;0;9;2006;309000
"37";37;20;112;10859;5;5;1994;1995;0;0;0;1097;1097;1097;0;0;1097;0;0;1;1;3;1; 6;0;1995;2;672;392;64;0;0;0;0;0;6;2009;145000
"38";38;20;74;8532;5;6;1954;1990;650;1213;0;84;1297;1297;0;0;1297;0;1;1;0;3;1; 5;1;1954;2;498;0;0;0;0;0;0;0;10;2009;153000
"39";39;20;68;7922;5;7;1953;2007;0;731;0;326;1057;1057;0;0;1057;1;0;1;0;3;1; 5;0;1953;1;246;0;52;0;0;0;0;0;1;2010;109000
"40";40;90;65;6040;4;5;1955;1955;0;0;0;0;0;1152;0;0;1152;0;0;2;0;2;2; 6;0;NA;0;0;0;0;0;0;0;0;0;6;2008;82000
如果我对你的理解正确的话,你有一个 data.frame,其中一列包含相关系数,你想按相关系数对数据进行排序。
测试时我注意到在只有一列的情况下默认行为有点奇怪,因此您需要稍微解决一下。
选项一,纯base R:
# Create some sample data
values <- rnorm(10)
names <- letters[1:10]
# This should be roughly equivalent to your data
my_df <- data.frame(val = values, row.names = names)
# Sort my_df by val
# You need to transform the row names to a column,
# because with just 1 column R seems to coerce the data.frame to a vector on sorting/selecting
my_df2 <- data.frame(my_df, names = rownames(my_df))
my_sorted_df <- my_df2[order(my_df2$val), ]
选项 2,使用 dplyr::arrange
:
library("dplyr")
# use the sample data from above
my_sorted_df2 <- arrange(my_df, val)
这两个函数当然也可以按降序排序,请参阅 ?order
和 ?arrange
了解如何执行此操作。
在 Fedora 30 上使用 R Studio 1.2.1335。我使用 cor_numcols <- cor(numcols[1:37],numcols$SalePrice,use="complete.obs")
创建了我的数据集,它默认按列名排序。我需要能够按相关值对数据进行排序。我试过 cor_numcols_min <-which(cor_numcols<=sort(cor_numcols)[5], arr.ind = FALSE)
生成一个包含行号和列号的数据集,而不是相关值。我也试过 sort.default(cor_numcols,decreasing = TRUE)
它只生成一个排序的相关值列表,没有它们关联的列。
what I would like to get
What I would like to get, second try
what I get
不确定这是否是包含数据的最佳方式,但这里是
示例数据
"";"Id";"MSSubClass";"LotFrontage";"LotArea";"OverallQual";"OverallCond";"YearBuilt"; "YearRemodAdd";"MasVnrArea";"BsmtFinSF1";"BsmtFinSF2";"BsmtUnfSF";"TotalBsmtSF";“1stFlrSF”;“2ndFlrSF”;"LowQualFinSF"; "GrLivArea";"BsmtFullBath";"BsmtHalfBath";"FullBath";"HalfBath";"BedroomAbvGr";"KitchenAbvGr";"TotRmsAbvGrd";"Fireplaces";"GarageYrBlt";"GarageCars";"GarageArea";"WoodDeckSF";"OpenPorchSF";"EnclosedPorch";"SsnPorch";"ScreenPorch";"PoolArea";"MiscVal";"MoSold";"YrSold";"SalePrice" "1";1;60;65;8450;7;5;2003;2003;196;706;0;150;856;856;854;0;1710;1;0;2;1;3;1; 8;0;2003;2;548;0;61;0;0;0;0;0;2;2008;208500 "2";2;20;80;9600;6;8;1976;1976;0;978;0;284;1262;1262;0;0;1262;0;1;2;0;3;1; 6;1;1976;2;460;298;0;0;0;0;0;0;5;2007;181500 "3";3;60;68;11250;7;5;2001;2002;162;486;0;434;920;920;866;0;1786;1;0;2;1;3;1; 6;1;2001;2;608;0;42;0;0;0;0;0;9;2008;223500 "4";4;70;60;9550;7;5;1915;1970;0;216;0;540;756;961;756;0;1717;1;0;1;0;3;1; 7;1;1998;3;642;0;35;272;0;0;0;0;2;2006;140000 "5";5;60;84;14260;8;5;2000;2000;350;655;0;490;1145;1145;1053;0;2198;1;0;2;1;4;1; 9;1;2000;3;836;192;84;0;0;0;0;0;12;2008;250000 "6";6;50;85;14115;5;5;1993;1995;0;732;0;64;796;796;566;0;1362;1;0;1;1;1;1; 5;0;1993;2;480;40;30;0;320;0;0;700;10;2009;143000 "7";7;20;75;10084;8;5;2004;2005;186;1369;0;317;1686;1694;0;0;1694;1;0;2;0;3;1; 7;1;2004;2;636;255;57;0;0;0;0;0;8;2007;307000 "8";8;60;NA;10382;7;6;1973;1973;240;859;32;216;1107;1107;983;0;2090;1;0;2;1;3;1; 7;2;1973;2;484;235;204;228;0;0;0;350;11;2009;2e+05 "9";9;50;51;6120;7;5;1931;1950;0;0;0;952;952;1022;752;0;1774;0;0;2;0;2;2; 8;2;1931;2;468;90;0;205;0;0;0;0;4;2008;129900 "10";10;190;50;7420;5;6;1939;1950;0;851;0;140;991;1077;0;0;1077;1;0;1;0;2;2; 5;2;1939;1;205;0;4;0;0;0;0;0;1;2008;118000 "11";11;20;70;11200;5;5;1965;1965;0;906;0;134;1040;1040;0;0;1040;1;0;1;0;3;1; 5;0;1965;1;384;0;0;0;0;0;0;0;2;2008;129500 "12";12;60;85;11924;9;5;2005;2006;286;998;0;177;1175;1182;1142;0;2324;1;0;3;0;4;1; 11;2;2005;3;736;147;21;0;0;0;0;0;7;2006;345000 "13";13;20;NA;12968;5;6;1962;1962;0;737;0;175;912;912;0;0;912;1;0;1;0;2;1; 4;0;1962;1;352;140;0;0;0;176;0;0;9;2008;144000 “14”;14;20;91;10652;7;5;2006;2007;306;0;0;1494;1494;1494;0;0;1494;0;0;2;0;3;1; 7;1;2006;3;840;160;33;0;0;0;0;0;8;2007;279500 "15";15;20;NA;10920;6;5;1960;1960;212;733;0;520;1253;1253;0;0;1253;1;0;1;1;2;1; 5;1;1960;1;352;0;213;176;0;0;0;0;5;2008;157000 "16";16;45;51;6120;7;8;1929;2001;0;0;0;832;832;854;0;0;854;0;0;1;0;2;1; 5;0;1991;2;576;48;112;0;0;0;0;0;7;2007;132000 "17";17;20;NA;11241;6;7;1970;1970;180;578;0;426;1004;1004;0;0;1004;1;0;1;0;2;1; 5;1;1970;2;480;0;0;0;0;0;0;700;3;2010;149000 "18";18;90;72;10791;4;5;1967;1967;0;0;0;0;0;1296;0;0;1296;0;0;2;0;2;2; 6;0;1967;2;516;0;0;0;0;0;0;500;10;2006;90000 "19";19;20;66;13695;5;5;2004;2004;0;646;0;468;1114;1114;0;0;1114;1;0;1;1;3;1; 6;0;2004;2;576;0;102;0;0;0;0;0;6;2008;159000 "20";20;20;70;7560;5;6;1958;1965;0;504;0;525;1029;1339;0;0;1339;0;0;1;0;3;1; 6;0;1958;1;294;0;0;0;0;0;0;0;5;2009;139000 "21";21;60;101;14215;8;5;2005;2006;380;0;0;1158;1158;1158;1218;0;2376;0;0;3;1;4;1; 9;1;2005;3;853;240;154;0;0;0;0;0;11;2006;325300 "22";22;45;57;7449;7;7;1930;1950;0;0;0;637;637;1108;0;0;1108;0;0;1;0;3;1; 6;1;1930;1;280;0;0;205;0;0;0;0;6;2007;139400 "23";23;20;75;9742;8;5;2002;2002;281;0;0;1777;1777;1795;0;0;1795;0;0;2;0;3;1; 7;1;2002;2;534;171;159;0;0;0;0;0;9;2008;230000 "24";24;120;44;4224;5;7;1976;1976;0;840;0;200;1040;1060;0;0;1060;1;0;1;0;3;1; 6;1;1976;2;572;100;110;0;0;0;0;0;6;2007;129900 "25";25;20;NA;8246;5;8;1968;2001;0;188;668;204;1060;1060;0;0;1060;1;0;1;0;3;1; 6;1;1968;1;270;406;90;0;0;0;0;0;5;2010;154000 "26";26;20;110;14230;8;5;2007;2007;640;0;0;1566;1566;1600;0;0;1600;0;0;2;0;3;1; 7;1;2007;3;890;0;56;0;0;0;0;0;7;2009;256300 "27";27;20;60;7200;5;7;1951;2000;0;234;486;180;900;900;0;0;900;0;1;1;0;3;1; 5;0;2005;2;576;222;32;0;0;0;0;0;5;2010;134800 "28";28;20;98;11478;8;5;2007;2008;200;1218;0;486;1704;1704;0;0;1704;1;0;2;0;3;1; 7;1;2008;3;772;0;50;0;0;0;0;0;5;2010;306000 "29";29;20;47;16321;5;6;1957;1997;0;1277;0;207;1484;1600;0;0;1600;1;0;1;0;2;1; 6;2;1957;1;319;288;258;0;0;0;0;0;12;2006;207500 "30";30;30;60;6324;4;6;1927;1950;0;0;0;520;520;520;0;0;520;0;0;1;0;1;1; 4;0;1920;1;240;49;0;87;0;0;0;0;5;2008;68500 "31";31;70;50;8500;4;4;1920;1950;0;0;0;649;649;649;668;0;1317;0;0;1;0;3;1; 6;0;1920;1;250;0;54;172;0;0;0;0;7;2008;40000 "32";32;20;NA;8544;5;6;1966;2006;0;0;0;1228;1228;1228;0;0;1228;0;0;1;1;3;1; 6;0;1966;1;271;0;65;0;0;0;0;0;6;2008;149350 "33";33;20;85;11049;8;5;2007;2007;0;0;0;1234;1234;1234;0;0;1234;0;0;2;0;3;1; 7;0;2007;2;484;0;30;0;0;0;0;0;1;2008;179900 "34";34;20;70;10552;5;5;1959;1959;0;1018;0;380;1398;1700;0;0;1700;0;1;1;1;4;1; 6;1;1959;2;447;0;38;0;0;0;0;0;4;2010;165500 "35";35;120;60;7313;9;5;2005;2005;246;1153;0;408;1561;1561;0;0;1561;1;0;2;0;2;1; 6;1;2005;2;556;203;47;0;0;0;0;0;8;2007;277500 "36";36;60;108;13418;8;5;2004;2005;132;0;0;1117;1117;1132;1320;0;2452;0;0;3;1;4;1; 9;1;2004;3;691;113;32;0;0;0;0;0;9;2006;309000 "37";37;20;112;10859;5;5;1994;1995;0;0;0;1097;1097;1097;0;0;1097;0;0;1;1;3;1; 6;0;1995;2;672;392;64;0;0;0;0;0;6;2009;145000 "38";38;20;74;8532;5;6;1954;1990;650;1213;0;84;1297;1297;0;0;1297;0;1;1;0;3;1; 5;1;1954;2;498;0;0;0;0;0;0;0;10;2009;153000 "39";39;20;68;7922;5;7;1953;2007;0;731;0;326;1057;1057;0;0;1057;1;0;1;0;3;1; 5;0;1953;1;246;0;52;0;0;0;0;0;1;2010;109000 "40";40;90;65;6040;4;5;1955;1955;0;0;0;0;0;1152;0;0;1152;0;0;2;0;2;2; 6;0;NA;0;0;0;0;0;0;0;0;0;6;2008;82000
如果我对你的理解正确的话,你有一个 data.frame,其中一列包含相关系数,你想按相关系数对数据进行排序。
测试时我注意到在只有一列的情况下默认行为有点奇怪,因此您需要稍微解决一下。
选项一,纯base R:
# Create some sample data
values <- rnorm(10)
names <- letters[1:10]
# This should be roughly equivalent to your data
my_df <- data.frame(val = values, row.names = names)
# Sort my_df by val
# You need to transform the row names to a column,
# because with just 1 column R seems to coerce the data.frame to a vector on sorting/selecting
my_df2 <- data.frame(my_df, names = rownames(my_df))
my_sorted_df <- my_df2[order(my_df2$val), ]
选项 2,使用 dplyr::arrange
:
library("dplyr")
# use the sample data from above
my_sorted_df2 <- arrange(my_df, val)
这两个函数当然也可以按降序排序,请参阅 ?order
和 ?arrange
了解如何执行此操作。