Estoy tratando de dividir una columna de cadena en mi marco de datos en dos columnas diferentes basadas en un archivo. Mis datos se ven así:
Rk Player Season Age Tm Lg WS G GS MP FG FGA `2P` `2PA` `3P` `3PA` FT FTA ORB DRB TRB AST STL BLK TOV PF
<dbl> <chr> <chr> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 "LeBro~ 2010-~ 26 MIA NBA 15.6 79 79 3063 758 1485 666 1206 92 279 503 663 80 510 590 554 124 50 284 163
2 2 "Pau G~ 2010-~ 30 LAL NBA 14.7 82 82 3037 593 1120 592 1117 1 3 354 430 268 568 836 273 48 130 142 203
La columna que he intentado manipular es la columna 'Jugador'. Las entradas de esa columna se ven así.
"LeBron James\\jamesle01" "Pau Gasol\\gasolpa01" "Dwight Howard\\howardw01"
Quiero que se divida en dos columnas pName y pID
pName pID
LeBron James jamesle01
Pau Gasol gasolpa01
Dwight Howard howardw01
He intentado usar gsub
, sub
, str_replace
, y separate
no he sido capaz de averiguar
player_stats2010 %>%
+ str_replace(Player,"\\\.*","")
player_stats2010 %>%
+ sub("\\\", "", player_stats2010$Player)
player_stats2010 %>%
+ sub("\.*", "", player_stats2010$Player)
player_stats2010 %>%
+ gsub("\.*", "", player_stats2010$Player)
player_stats2010_test <- player_salaries_2010 %>%
+ separate(Player, c("pName", "pID"), "\")
Realmente no entiendo la sintaxis de esta pregunta a pesar de buscar en línea y en varias otras preguntas. Si pudiera ayudarme a entender lo que no entiendo, sería fantástico. Muchas gracias :)
1) read.table Uso x
de la nota al final y solo uso base R read.table
como se muestra:
read.table(text = x, sep = "\\", col.names = c("pName", "pID"))
dando:
pName pID
1 LeBron James jamesle01
2 Pau Gasol gasolpa01
3 Dwight Howard howardw01
2) tidyr
Con tidyr podríamos hacer esto:
library(tidyr)
data.frame(x) %>%
separate(x, c("pName", "pID"), sep = r"{\\}")
Se supone que la entrada es:
x <- c("LeBron James\\jamesle01", "Pau Gasol\\gasolpa01", "Dwight Howard\\howardw01")
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras