【发布时间】:2016-12-25 23:45:18
【问题描述】:
我有几个表格,其中包含多列数字数据。列数可以变化。每个表有 3 列(Player、Team、Pos),它们没有数字数据。我想出了以下方法将除上述 3 之外的每一列都转换为数字,但我遇到了一个我无法解释的错误。
这里是函数
qb2 <- qb %>% mutate_at(grep("^(`?!`Player|`?!`Team|`?!`Pos).*$",
colnames(.)),funs(as.numeric))
当以这种方式运行时,我在 Player, Team & Position 中得到 NA 故障排除我可以让它像这样部分工作
qb2 <- qb %>% mutate_at(grep("^(`?!`Player|Team|`?!`Pos).*$",
colnames(.)),funs(as.numeric))
Player 和 Pos 显示正确,但 Team 仍然是 NA
我不确定为什么从 Team 中删除 ?! 会部分起作用。
让我知道导致 grep/exclude 失败的原因。
样本数据
structure(list(Player = c("Matt Schaub", "Jimmy Garoppolo", "Tom Savage",
"Dan Orlovsky", "Cardale Jones", "Ryan Griffin", "Sean Mannion",
"Luke McCown", "Scott Tolzien", "Dak Prescott", "Brandon Allen",
"Garrett Grayson", "AJ McCarron", "Joe Callahan", "Matt Moore",
"Matt Barkley", "Blake Bortles", "Stephen Morris", "Sean Renfree",
"Mark Sanchez", "Jameill Showers", "Thad Lewis", "Jameis Winston",
"Kellen Clemens", "Chad Henne", "Derek Anderson", "Bryce Petty",
"Teddy Bridgewater", "Ryan Mallett", "EJ Manuel", "Nate Sudfeld",
"Joe Webb", "Carson Wentz", "Trevor Siemian", "Mike Glennon",
"Josh Johnson", "Joe Licata", "Brian Hoyer", "Geno Smith", "Joel Stave",
"Ryan Nassib", "Paxton Lynch", "Ryan Fitzpatrick", "Jake Rudock",
"Connor Cook", "Robert Griffin III", "Alex Tanney", "Brandon Doughty",
"Philip Rivers", "Blaine Gabbert", "Case Keenum", "Matthew Stafford",
"Matt Cassel", "Landry Jones", "Marquise Williams", "Colt McCoy",
"Shaun Hill", "Aaron Murray", "Dustin Vaughan", "Tyler Bray",
"Mike Bercovici", "Marcus Mariota", "Derek Carr", "Drew Stanton",
"Matt McGloin", "Kirk Cousins", "Jared Goff", "Carson Palmer",
"Drew Brees", "Nick Foles", "Cam Newton", "Alex Smith", "Russell Wilson",
"Jake Heaps", "Andy Dalton", "Austin Davis", "David Fales", "Keith Wenning",
"Brock Osweiler", "Bruce Gradkowski", "Zach Mettenberger", "Kevin Hogan",
"Jeff Driskel", "Jay Cutler", "Connor Shaw", "Jake Coker", "Zac Dysert",
"Chase Daniel", "Cody Kessler", "Logan Thomas", "Ryan Tannehill",
"McLeod Bethel-Thompson", "Jerrod Johnson", "Tyrod Taylor", "Josh McCown",
"Sam Bradford", "Matt Ryan", "Matt Simms"), Team = c("ATL", "NE",
"HOU", "DET", "BUF", "TB", "LA", "NO", "IND", "DAL", "JAX", "NO",
"CIN", "GB", "MIA", "ARI", "JAX", "IND", "ATL", "DEN", "DAL",
"SF", "TB", "SD", "JAX", "CAR", "NYJ", "MIN", "BAL", "BUF", "WAS",
"CAR", "PHI", "DEN", "TB", "BAL", "CIN", "CHI", "NYJ", "MIN",
"NYG", "DEN", "NYJ", "DET", "OAK", "CLE", "TEN", "MIA", "SD",
"SF", "LA", "DET", "TEN", "PIT", "GB", "WAS", "MIN", "KC", "PIT",
"KC", "SD", "TEN", "OAK", "ARI", "OAK", "WAS", "LA", "ARI", "NO",
"KC", "CAR", "KC", "SEA", "SEA", "CIN", "CLE", "CHI", "CIN",
"HOU", "PIT", "SD", "KC", "SF", "CHI", "CHI", "ARI", "MIA", "PHI",
"CLE", "NYG", "MIA", "PHI", "BAL", "BUF", "CLE", "PHI", "ATL",
"ATL"), Pos = c("QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB", "QB",
"QB", "QB"), `
Comp` = c("10", "11", "14", "16", "11", "13",
"18", "18", "12", "10", "10", "10", "11", "16", "10", "8", "6",
"5", "5", "10", "8", "12", "7", "8", "8", "7", "7", "6", "11",
"10", "10", "9", "12", "7", "7", "8", "3", "7", "8", "8", "7",
"6", "3", "8", "7", "4", "6", "7", "2", "4", "6", "4", "3", "6",
"6", "7", "6", "3", "6", "3", "3", "5", "3", "2", "5", "5", "4",
"3", "1", "4", "5", "3", "3", "3", "4", "4", "4", "3", "4", "3",
"2", "2", "4", "3", "2", "2", "1", "4", "2", "2", "2", "1", "1",
"2", "1", "1", "0", "0"), `
Att` = c("15", "18", "24", "25",
"21", "23", "25", "27", "23", "12", "19", "16", "16", "23", "14",
"24", "7", "9", "9", "13", "16", "21", "9", "15", "9", "14",
"14", "7", "15", "18", "15", "16", "24", "12", "14", "11", "7",
"10", "14", "13", "15", "7", "4", "11", "11", "8", "10", "9",
"3", "10", "7", "6", "5", "12", "14", "11", "7", "5", "11", "9",
"6", "5", "7", "6", "11", "5", "9", "5", "1", "8", "6", "4",
"6", "10", "5", "9", "8", "8", "7", "3", "8", "6", "12", "4",
"4", "5", "2", "10", "2", "3", "4", "1", "2", "3", "4", "1",
"4", "3"), `
Pct` = c("66.7", "61.1", "58.3", "64.0", "52.4",
"56.5", "72.0", "66.7", "52.2", "83.3", "52.6", "62.5", "68.8",
"69.6", "71.4", "33.3", "85.7", "55.6", "55.6", "76.9", "50.0",
"57.1", "77.8", "53.3", "88.9", "50.0", "50.0", "85.7", "73.3",
"55.6", "66.7", "56.3", "50.0", "58.3", "50.0", "72.7", "42.9",
"70.0", "57.1", "61.5", "46.7", "85.7", "75.0", "72.7", "63.6",
"50.0", "60.0", "77.8", "66.7", "40.0", "85.7", "66.7", "60.0",
"50.0", "42.9", "63.6", "85.7", "60.0", "54.5", "33.3", "50.0",
"100.0", "42.9", "33.3", "45.5", "100.0", "44.4", "60.0", "100.0",
"50.0", "83.3", "75.0", "50.0", "30.0", "80.0", "44.4", "50.0",
"37.5", "57.1", "100.0", "25.0", "33.3", "33.3", "75.0", "50.0",
"40.0", "50.0", "40.0", "100.0", "66.7", "50.0", "100.0", "50.0",
"66.7", "25.0", "100.0", "0.0", "0.0"), `
Att/G` = c("15.0",
"18.0", "24.0", "25.0", "21.0", "23.0", "25.0", "27.0", "23.0",
"12.0", "19.0", "16.0", "16.0", "23.0", "14.0", "24.0", "7.0",
"9.0", "9.0", "13.0", "16.0", "21.0", "9.0", "15.0", "9.0", "14.0",
"14.0", "7.0", "15.0", "18.0", "15.0", "16.0", "24.0", "12.0",
"14.0", "11.0", "7.0", "10.0", "14.0", "13.0", "15.0", "7.0",
"4.0", "11.0", "11.0", "8.0", "10.0", "9.0", "3.0", "10.0", "7.0",
"6.0", "5.0", "12.0", "14.0", "11.0", "7.0", "5.0", "11.0", "9.0",
"6.0", "5.0", "7.0", "6.0", "11.0", "5.0", "9.0", "5.0", "1.0",
"8.0", "6.0", "4.0", "6.0", "10.0", "5.0", "9.0", "8.0", "8.0",
"7.0", "3.0", "8.0", "6.0", "12.0", "4.0", "4.0", "5.0", "2.0",
"10.0", "2.0", "3.0", "4.0", "1.0", "2.0", "3.0", "4.0", "1.0",
"4.0", "3.0"), `
Yds` = c("179", "168", "168", "164", "162",
"148", "147", "143", "140", "139", "138", "133", "125", "124",
"122", "121", "105", "104", "101", "99", "99", "97", "97", "96",
"94", "93", "93", "92", "91", "91", "89", "89", "89", "88", "83",
"83", "82", "81", "79", "76", "75", "74", "72", "72", "71", "67",
"67", "66", "64", "63", "58", "58", "55", "55", "55", "53", "52",
"52", "50", "48", "46", "45", "44", "42", "41", "39", "38", "38",
"37", "37", "36", "36", "34", "33", "32", "32", "30", "28", "27",
"22", "22", "21", "20", "18", "17", "16", "16", "15", "15", "12",
"8", "7", "7", "7", "5", "3", "0", "0"), `
Avg` = c("11.9", "9.3",
"7.0", "6.6", "7.7", "6.4", "5.9", "5.3", "6.1", "11.6", "7.3",
"8.3", "7.8", "5.4", "8.7", "5.0", "15.0", "11.6", "11.2", "7.6",
"6.2", "4.6", "10.8", "6.4", "10.4", "6.6", "6.6", "13.1", "6.1",
"5.1", "5.9", "5.6", "3.7", "7.3", "5.9", "7.5", "11.7", "8.1",
"5.6", "5.8", "5.0", "10.6", "18.0", "6.5", "6.5", "8.4", "6.7",
"7.3", "21.3", "6.3", "8.3", "9.7", "11.0", "4.6", "3.9", "4.8",
"7.4", "10.4", "4.5", "5.3", "7.7", "9.0", "6.3", "7.0", "3.7",
"7.8", "4.2", "7.6", "37.0", "4.6", "6.0", "9.0", "5.7", "3.3",
"6.4", "3.6", "3.8", "3.5", "3.9", "7.3", "2.8", "3.5", "1.7",
"4.5", "4.3", "3.2", "8.0", "1.5", "7.5", "4.0", "2.0", "7.0",
"3.5", "2.3", "1.3", "3.0", "0.0", "0.0"), `
Yds/G` = c("179.0",
"168.0", "168.0", "164.0", "162.0", "148.0", "147.0", "143.0",
"140.0", "139.0", "138.0", "133.0", "125.0", "124.0", "122.0",
"121.0", "105.0", "104.0", "101.0", "99.0", "99.0", "97.0", "97.0",
"96.0", "94.0", "93.0", "93.0", "92.0", "91.0", "91.0", "89.0",
"89.0", "89.0", "88.0", "83.0", "83.0", "82.0", "81.0", "79.0",
"76.0", "75.0", "74.0", "72.0", "72.0", "71.0", "67.0", "67.0",
"66.0", "64.0", "63.0", "58.0", "58.0", "55.0", "55.0", "55.0",
"53.0", "52.0", "52.0", "50.0", "48.0", "46.0", "45.0", "44.0",
"42.0", "41.0", "39.0", "38.0", "38.0", "37.0", "37.0", "36.0",
"36.0", "34.0", "33.0", "32.0", "32.0", "30.0", "28.0", "27.0",
"22.0", "22.0", "21.0", "20.0", "18.0", "17.0", "16.0", "16.0",
"15.0", "15.0", "12.0", "8.0", "7.0", "7.0", "7.0", "5.0", "3.0",
"0.0", "0.0"), `
TD` = c("0", "0", "2", "1", "1", "0", "3", "1",
"1", "2", "0", "0", "1", "1", "1", "0", "0", "1", "0", "1", "0",
"0", "1", "0", "0", "1", "0", "1", "1", "1", "1", "0", "0", "0",
"0", "0", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "0",
"0", "1", "1", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "2", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"1", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0"),
`
Int` = c("0", "0", "0", "1", "0", "2", "1", "1", "0", "0",
"1", "1", "0", "0", "1", "1", "0", "0", "0", "1", "0", "0",
"0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "1", "0",
"1", "0", "1", "1", "0", "1", "2", "0", "0", "0", "0", "1",
"0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0",
"0", "0", "1", "0", "0", "1", "0", "0", "1", "0", "0", "0",
"0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "1", "1",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0"), `
1st` = c("5", "7", "10", "10", "6",
"6", "10", "7", "5", "7", "4", "6", "5", "9", "5", "7", "4",
"3", "3", "5", "2", "6", "5", "4", "5", "5", "5", "4", "5",
"4", "5", "3", "2", "3", "4", "5", "3", "2", "4", "6", "4",
"4", "2", "3", "2", "2", "2", "3", "2", "2", "2", "3", "2",
"1", "4", "1", "4", "2", "2", "2", "2", "1", "2", "2", "2",
"2", "3", "2", "1", "2", "3", "2", "3", "3", "2", "2", "1",
"1", "1", "1", "1", "1", "0", "1", "1", "1", "1", "0", "1",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), `
1st%` = c("33.3",
"38.9", "41.7", "40.0", "28.6", "26.1", "40.0", "25.9", "21.7",
"58.3", "21.1", "37.5", "31.3", "39.1", "35.7", "29.2", "57.1",
"33.3", "33.3", "38.5", "12.5", "28.6", "55.6", "26.7", "55.6",
"35.7", "35.7", "57.1", "33.3", "22.2", "33.3", "18.8", "8.3",
"25.0", "28.6", "45.5", "42.9", "20.0", "28.6", "46.2", "26.7",
"57.1", "50.0", "27.3", "18.2", "25.0", "20.0", "33.3", "66.7",
"20.0", "28.6", "50.0", "40.0", "8.3", "28.6", "9.1", "57.1",
"40.0", "18.2", "22.2", "33.3", "20.0", "28.6", "33.3", "18.2",
"40.0", "33.3", "40.0", "100.0", "25.0", "50.0", "50.0",
"50.0", "30.0", "40.0", "22.2", "12.5", "12.5", "14.3", "33.3",
"12.5", "16.7", "0.0", "25.0", "25.0", "20.0", "50.0", "0.0",
"50.0", "0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "0.0",
"0.0", "0.0"), `
Lng` = c("68", "56", "24", "28T", "40",
"25", "16", "20", "42T", "32T", "27", "28", "40", "18", "51T",
"30", "45", "57T", "48", "32T", "47", "14", "26T", "17",
"36", "23", "21", "49T", "19T", "26", "28", "35", "19", "22",
"30", "29", "47", "28", "18", "22", "24", "22", "43", "27T",
"32", "49", "23", "24", "44T", "43T", "20", "30", "24", "29T",
"16", "19", "18", "25", "16", "23", "19", "31", "22", "32",
"19T", "11", "14", "30", "37", "19", "10", "20", "12", "13",
"9", "19", "13", "14", "12", "9", "14", "15", "11", "12",
"13", "13", "16T", "9", "10T", "7", "7", "7", "7", "5", "5",
"3", "--", "--"), `
20+` = c("2", "2", "4", "3", "3", "2",
"0", "1", "2", "2", "2", "3", "2", "0", "2", "2", "1", "1",
"2", "1", "1", "0", "2", "0", "1", "1", "2", "2", "0", "1",
"2", "1", "0", "2", "2", "1", "2", "2", "0", "1", "1", "1",
"2", "1", "1", "1", "1", "1", "2", "1", "1", "1", "1", "1",
"0", "0", "0", "1", "0", "2", "0", "1", "1", "1", "0", "0",
"0", "1", "1", "0", "0", "1", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0"), `
40+` = c("2",
"1", "0", "0", "1", "0", "0", "0", "1", "0", "0", "0", "1",
"0", "1", "0", "1", "1", "1", "0", "1", "0", "0", "0", "0",
"0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "1",
"0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "1",
"1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0"), `
Sck` = c("0", "2", "2", "0", "1", "1", "0", "2",
"0", "1", "1", "0", "1", "1", "3", "0", "1", "0", "0", "0",
"1", "1", "1", "0", "1", "1", "2", "1", "0", "1", "3", "2",
"0", "0", "1", "1", "1", "3", "0", "0", "4", "3", "1", "0",
"0", "0", "2", "1", "0", "0", "0", "1", "1", "1", "1", "0",
"0", "0", "3", "0", "0", "0", "0", "0", "0", "0", "1", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "2", "0", "1", "0",
"2", "0", "0", "2", "0", "1", "0", "4", "3", "0", "0", "0",
"0", "0", "1", "0", "0", "0"), `
Rate` = c("107.4", "91.9",
"107.6", "79.4", "93.8", "39.8", "109.5", "76.6", "85.4",
"154.5", "54.3", "62.8", "112.8", "97.0", "92.0", "33.5",
"118.8", "133.6", "95.1", "91.5", "69.5", "68.9", "148.6",
"73.2", "110.2", "95.2", "71.4", "158.3", "82.9", "88.0",
"104.6", "72.1", "41.8", "81.2", "38.7", "94.1", "47.0",
"54.6", "97.0", "45.7", "22.2", "110.7", "116.7", "120.3",
"82.0", "39.1", "80.0", "97.2", "149.3", "95.0", "101.2",
"97.9", "97.9", "90.6", "24.4", "75.2", "97.6", "95.4", "66.5",
"52.1", "36.1", "104.2", "64.0", "19.4", "95.1", "99.2",
"17.1", "83.8", "118.8", "63.0", "91.7", "102.1", "27.8",
"40.8", "93.3", "53.9", "59.4", "8.3", "65.8", "97.2", "0.0",
"4.9", "42.4", "83.3", "61.5", "48.8", "116.7", "47.9", "137.5",
"74.3", "56.2", "95.8", "58.3", "70.1", "39.6", "79.2", "39.6",
"39.6")), .Names = c("Player", "Team", "Pos", "\nComp", "\nAtt",
"\nPct", "\nAtt/G", "\nYds", "\nAvg", "\nYds/G", "\nTD", "\nInt",
"\n1st", "\n1st%", "\nLng", "\n20+", "\n40+", "\nSck", "\nRate"
), class = "data.frame", row.names = c(NA, 98L))
【问题讨论】:
-
请提供数据或类似数据
-
qb2[] <- lapply(qb2, type.convert, as.is = TRUE) -
您可能对来自 package readr 的
type_convert感兴趣。