所以我有一个数据帧列表,我试图从每个数据帧中修剪所有空白(使用stringr::str_squish)
)。
我认为最好的方法是mutate
每个数据帧中的每个变量,并将其映射到列表中的每个数据帧。
问题是我一直得到这个错误:
Error in expr_substitute(funs[[j]], quote(.), var_sym) :
argument "var_sym" is missing, with no default
以下是我正在做的(使用下面的可复制dput
代码):
library(tidyverse)
library(rvest)
mydata %>%
map(~mutate_all(., str_squish))
但这不起作用。有什么想法吗?
mydata <- list(structure(list(`Matchup
Matchup` = c("Coloradon @n n n n St. Louisn n n n n n n n n n COLn n @n n STL",
"Buffalon @n n n n Edmontonn n n n n n n n n n BUFn n @n n EDM",
"NY Islandersn @n n n n Los Angelesn n n n n n n n n n NYIn n @n n LAK"
), `Result
Result` = c("COL 2,n STL 4n n n n n n n COL 2,n STL 4",
"BUF 3,n EDM 4n n n n n n n BUF 3,n EDM 4",
"NYI 0,n LAK 1n n n n n n n NYI 0,n LAK 1"
), c("Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER"
), `Networks
Networks` = c("G. Fuhr, n J. Campbell, n C. Pronger",
"T. Marchant, n R. Smehlik, n A. Kovalenko",
""), c("Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER"
), c(NA, NA, NA)), .Names = c("Matchupn Matchup",
"Resultn Result", "", "Networksn Networks",
"", ""), class = "data.frame", row.names = c(NA, -3L)), structure(list(
`Matchup
Matchup` = c("NY Rangersn @n n n n Bostonn n n n n n n n n n NYRn n @n n BOS",
"Phoenixn @n n n n Hartfordn n n n n n n n n n PHXn n @n n HFD",
"Tampa Bayn @n n n n Pittsburghn n n n n n n n n n TBLn n @n n PIT",
"Ottawan @n n n n Montréaln n n n n n n n n n OTTn n @n n MTL",
"Detroitn @n n n n New Jerseyn n n n n n n n n n DETn n @n n NJD",
"Floridan @n n n n Philadelphian n n n n n n n n n FLAn n @n n PHI",
"Chicagon @n n n n Washingtonn n n n n n n n n n CHIn n @n n WSH",
"Anaheimn @n n n n Toronton n n n n n n n n n ANAn n @n n TOR",
"Coloradon @n n n n Dallasn n n n n n n n n n COLn n @n n DAL",
"Calgaryn @n n n n Vancouvern n n n n n n n n n CGYn n @n n VAN",
"NY Islandersn @n n n n San Josen n n n n n n n n n NYIn n @n n SJS"
), `Result
Result` = c("NYR 4,n BOS 4n (OT)n n n n n n n NYR 4,n BOS 4n (OT)",
"PHX 0,n HFD 1n n n n n n n PHX 0,n HFD 1",
"TBL 4,n PIT 3n (OT)n n n n n n n TBL 4,n PIT 3n (OT)",
"OTT 3,n MTL 3n (OT)n n n n n n n OTT 3,n MTL 3n (OT)",
"DET 1,n NJD 3n n n n n n n DET 1,n NJD 3",
"FLA 3,n PHI 1n n n n n n n FLA 3,n PHI 1",
"CHI 5,n WSH 2n n n n n n n CHI 5,n WSH 2",
"ANA 1,n TOR 4n n n n n n n ANA 1,n TOR 4",
"COL 1,n DAL 4n n n n n n n COL 1,n DAL 4",
"CGY 1,n VAN 3n n n n n n n CGY 1,n VAN 3",
"NYI 2,n SJS 2n (OT)n n n n n n n NYI 2,n SJS 2n (OT)"
), c("Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER"
), `Three Stars of the Game
Three Stars of the Game` = c("S. Heinze, n L. Robitaille, n J. Stumpel",
"S. Burke, n A. Godynyuk, n G. Wesley",
"D. Ciccarelli, n M. Lemieux, n J. Cullen",
"D. Rhodes, n S. Koivu, n W. Redden",
"M. Brodeur, n S. Thomas, n S. Niedermayer",
"J. Vanbiesbrouck, n S. Mellanby, n R. Brind'Amour",
"C. Chelios, n D. Savard, n R. Zednik",
"F. Potvin, n K. Muller, n J. Kurri",
"A. Moog, n C. Ludwig, n J. Nieuwendyk",
"A. Mogilny, n K. McLean, n J. Iginla",
"B. Nicholls, n J. Friesen, n D. Kasparaitis"
), c("Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER",
"Recapn n n n GAMECENTER"
), c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("Matchupn Matchup",
"Resultn Result", "", "Three Stars of the Gamen Three Stars of the Game",
"", ""), class = "data.frame", row.names = c(NA, -11L)))
mydata
中的数据帧似乎有重复的列名,这可能是mutate_all
的问题。下面我用从a到f的字母重命名数据帧,然后用function(x)
应用mutate_all
和str_squish
以避免任何混淆。它似乎起作用了。
library(tidyverse)
mydata %>%
map(set_names, letters[1:6]) %>%
map(function(x) mutate_all(x, funs(str_squish(.))))
因此,在创建mydata
时,应避免使用重复的列名。