У меня есть большой фрейм данных, содержащий столбцы, один из которых представляет собой идентификационный код с именем «code», а другой - имя двух железнодорожных станций, разделенных косой чертой с именем «name»
Я хотел найтивсе коды, связанные с названием станции (и возможностью поиска нескольких станций одновременно), поэтому он даст мне список векторов, содержащих несколько кодов для каждой станции.
Я использовал lapply для получения строкдля каждой станции, но теперь я не могу найти значение в столбце «код», связанный с номером строки.
SearchFor <- c("Chicago", "New York", "Atlanta")
lapply(c(SearchFor,grep,x=datastations$name)
У меня есть следующий список:
$`Chicago`
[1] 29 64 135 160 164 167 176 186 225 247 248
$New York
[1] 51 53 109 111 112 164
$Atlanta
[1] 4 78 168 237 291
По сути, я хотел бы изменить каждое из этих чисел на значение столбца «код» в этих строках.
Вот мои датированные «данные» после того, как я использовал dput:
structure(list(code = c(6000L, 6001L, 6002L, 6003L, 6004L, 6005L,
6006L, 6007L, 6008L, 6009L, 6010L, 6011L, 6012L, 6013L, 6014L,
6015L, 6016L, 6017L, 6018L, 6019L, 6020L, 6021L, 6022L, 6023L,
6024L, 6025L, 6026L, 6027L, 6028L, 6029L, 6030L, 6031L, 6032L,
6033L, 6034L, 6035L, 6036L, 6037L, 6038L, 6039L, 6040L, 6041L,
6042L, 6043L, 6044L, 6045L, 6046L, 6047L, 6048L, 6049L, 5000L,
5001L, 5002L, 5003L, 5004L, 5005L, 5006L, 5007L, 5008L, 6050L,
6051L, 6052L, 6053L, 6054L, 6055L, 6056L, 6057L, 6058L, 6059L,
6060L, 6061L, 6062L, 6063L, 6064L, 6065L, 6066L, 6067L, 6068L,
6069L, 6070L, 6071L, 6072L, 6073L, 6074L, 6075L, 6076L, 6077L,
6078L, 6079L, 6080L, 6081L, 6082L, 6083L, 6084L, 6085L, 6086L,
6087L, 6088L, 6089L, 6090L, 6091L, 5009L, 5010L, 5011L, 5012L,
6092L, 6093L, 6094L, 6095L, 6096L, 6097L), name = c("Atlanta / New York",
"Atlanta / Chicago", "Atlanta / Miami", "Atlanta / Los Angeles",
"Atlanta / Toronto", "Atlanta / Washington", "Atlanta / Cleveland",
"Atlanta / Raleigh", "Atlanta / Newark", "Atlanta / Ottawa",
"Atlanta / Detroit", "Atlanta / Albany", "Atlanta / Hartford",
"Atlanta / Providence", "New York / Chicago", "New York / Miami",
"New York / Los Angeles", "New York / Toronto", "New York / Washington",
"New York / Cleveland", "New York / Raleigh", "New York / Newark",
"New York / Ottawa", "New York / Detroit", "New York / Albany",
"New York / Hartford", "New York / Providence", "Chicago / Miami",
"Chicago / Los Angeles", "Chicago / Toronto", "Chicago / Washington",
"Chicago / Cleveland", "Chicago / Raleigh", "Chicago / Newark",
"Chicago / Ottawa", "Chicago / Detroit", "Chicago / Albany",
"Chicago / Hartford", "Chicago / Providence", "Miami / Los Angeles",
"Miami / Toronto", "Miami / Washington", "Miami / Cleveland",
"Miami / Raleigh", "Miami / Newark", "Miami / Ottawa", "Miami / Detroit",
"Miami / Albany", "Miami / Hartford", "Miami / Providence", "Toronto / Washington",
"Toronto / Cleveland", "Toronto / Raleigh", "Toronto / Newark",
"Toronto / Ottawa", "Toronto / Detroit", "Toronto / Albany",
"Toronto / Hartford", "Toronto / Providence", "Los Angeles / Toronto",
"Los Angeles / Washington", "Los Angeles / Cleveland", "Los Angeles / Raleigh",
"Los Angeles / Newark", "Los Angeles / Ottawa", "Los Angeles / Detroit",
"Los Angeles / Albany", "Los Angeles / Hartford", "Los Angeles / Providence",
"Washington / Washington", "Washington / Cleveland", "Washington / Raleigh",
"Washington / Newark", "Washington / Ottawa", "Washington / Detroit",
"Washington / Hartford", "Washington / Providence", "Raleigh / Newark",
"Raleigh / Ottawa", "Raleigh / Detroit", "Raleigh / Albany",
"Raleigh / Hartford", "Raleigh / Providence", "Cleveland / Raleigh",
"Cleveland / Newark", "Cleveland / Ottawa", "Cleveland / Detroit",
"Cleveland / Albany", "Cleveland / Hartford", "Cleveland / Providence",
"New York / Newark", "New York / Ottawa", "New York / Detroit",
"New York / Albany", "New York / Hartford", "New York / Providence",
"Newark / Ottawa", "Newark / Detroit", "Newark / Albany", "Newark / Hartford",
"Newark / Providence", "Ottawa / Detroit", "Ottawa / Albany",
"Ottawa / Hartford", "Ottawa / Providence", "Detroit / Albany",
"Detroit / Hartford", "Detroit / Providence", "Albany / Hartford",
"Albany / Providence", "Hartford / Providence")), class = "data.frame", row.names = c(NA,
-111L))
Я получил эту базу данных, прочитав файл .csv, используя этот код
read.csv(file, colClasses =
c(rep("integer",1),rep("character",1),rep("NULL",2)))
Я хотел бы применить что-то вроде:
List[1] <- datastations$code[List[[1]]]
, но для каждого вектора списка, нетнезависимо от того, сколько их естьсоюзник)