Как ответить на этот вопрос программирования, используемый для собеседования? - PullRequest
0 голосов
/ 26 апреля 2019

Я недавно подал заявку на работу, и мне прислали небольшую викторину, которую мне нужно было пройти через неделю. Я стал дерзким и закончил это примерно через полтора часа. К сожалению, кажется, что я не добился успеха, и я хотел узнать, есть ли у кого-нибудь из вас мысли, хотите ли вы найти время, чтобы увидеть мою ошибку. По сути, моя цель - выяснить, где я ошибся, просто потому, что меня очень быстро отклонили после подачи, и я действительно хочу убедиться, что готов к следующему разу, если мне зададут аналогичный вопрос.

Моя главная проблема в том, верны ли мои ответы. Но я подозреваю, что они, возможно, хотели видеть лучшую организацию кода также. Я действительно не думал, что это будет необходимо, но, возможно, я должен был сделать его более профессиональным. Это мое первое приложение такого рода.

Я сделал свою работу в R, но вы можете использовать любой язык для решения, кроме Excel.

Данные: https://catalog.data.gov/dataset/average-daily-traffic-counts-3968f/resource/5ae8365f-b7a9-4880-8a3e-83435237567b

Вопросы:

  1. Какая самая оживленная улица?

  2. Какой самый загруженный месяц?

  3. Есть ли наиболее загруженное направление (N, S, E, W), которое вы можете узнать из этих данных?

Это основные вопросы. Было несколько других, но это были единственные, у которых были явные ответы. Другие вопросы касались того, какую очистку данных или разработку функций я проводил и что я узнал дополнительно из данных.

Мои ответы были:

  1. Западный пр.

  2. Октябрь

  3. Юг связан с севером, как близкая секунда.


Для всех, кто интересуется, у меня также есть мой код, чтобы вы могли увидеть, где я мог ошибиться.

data = read.csv("D:\\School\\Work\\Allstate Test\\Average_Daily_Traffic_Counts.csv")
attach(data)
#detach(data)


# 1. Data Cleaning --------------------------------------------------------
# Mispellings, St/Street, etc.

# Eliminate case problem
data = as.data.frame(sapply(data, toupper))
data = as.matrix(data)

# Fix st/street problem, Wacker lower
for(i in 1:length(data[,1]))
{
  if(grepl("71ST STREET",data[i,3],ignore.case=TRUE)==TRUE)
  {
    data[i,3] = '71ST ST'
  }
}

for(i in 1:length(data[,1]))
{
  if(grepl("WACKER DR (LOWER)",data[i,3],ignore.case=TRUE)==TRUE)
  {
    data[i,3] = 'Wacker Lower Dr'
  }
}
data
# I don't see other problems.

# 2. Busiest Street -------------------------------------------------------

max(aggregate(Total.Passing.Vehicle.Volume,by=list(Category=Street),FUN=sum)[,2])
which(aggregate(Total.Passing.Vehicle.Volume,by=list(Category=Street),FUN=sum)[,2] == 1112200)
aggregate(Total.Passing.Vehicle.Volume,by=list(Category=Street),FUN=sum)[244,1] # Western Ave


# 3. Busiest Month --------------------------------------------------------
library(dplyr)
data$Date.of.Count = as.Date(data$Date.of.Count,format='%m/%d/%Y')
month = format(data$Date.of.Count,'%m')
data = cbind(data,month)

max(aggregate(Total.Passing.Vehicle.Volume,by=list(Category=month),FUN=sum)[,2])
aggregate(Total.Passing.Vehicle.Volume,by=list(Category=month),FUN=sum)[,2] #October


# 4. Busiest Direction of Travel ------------------------------------------

library(stringr)
NORTH = sum(as.numeric(str_extract(data[,6], "(?i)(?<=NORTH BOUND:\\D)\\d+")),na.rm=TRUE)
EAST = sum(as.numeric(str_extract(data[,6], "(?i)(?<=EAST BOUND:\\D)\\d+")),na.rm=TRUE)
WEST = sum(as.numeric(str_extract(data[,6], "(?i)(?<=WEST BOUND:\\D)\\d+")),na.rm=TRUE)
SOUTH = sum(as.numeric(str_extract(data[,6], "(?i)(?<=SOUTH BOUND:\\D)\\d+")),na.rm=TRUE)
max(c(NORTH,EAST,WEST,SOUTH))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...