我正在写我的论文,我正在努力准备一些数据。
我有一个数据集,其中包含几条美国航线的prices
,distance
和许多其他变量。我需要识别特定航空公司(西南航空)的每条航线上的进入威胁,为此,我需要为数据集的每一行创建一个假人,如果西南航空在那个时间点从该行的起飞机场起飞,则该假人的值为1。
我想到的方法是有一个算法来检查year
和起飞airport_ID
(数据集中的所有变量),然后基于该值通过所有数据集过滤year
=<年份行,origin_airport
>
你知道怎么把它放进Rstudio代码吗?或者有没有更简单的方法来解决这个问题?
这是到dropbox数据集的链接:
https://www.dropbox.com/s/n09rp2vcyqfx02r/DB1B_completeDB1B_complete.csv?dl=0
简单的答案是使用自连接。
查看您的数据集,我没有看到IATA机场代码,而是6位数的原点和目的地id(似乎不符合DB1A/DB1B中的任何内容?? ?)。此外,(对我来说)数据的粒度究竟是什么也不清楚,所以做一些假设。
library(data.table)
setwd('<directory with your csv file>')
data <- fread('DB1B_completeDB1B_complete.csv')
wn <- data[carrier=='WN']
data[, flag:=0]
data[wn, flag:=1, on=.(ap_id, year, quarter, date)]
因此,这只是提取了WN记录,然后将其连接回ap_id
(定义路由??),year
,quarter
和date
上的原始表。这假设粒度是在运营商/路线/年/季度/日期级别(例如每行)。
##
# missingness
#
data[, .(col = names(data), na.count=sapply(.SD, (x) sum(is.na(x))))]
此外,我假设每个运营商/路线/年/季度/日期有一行似乎并不总是成立。对于WN行,这是一个特别严重的问题。
##
# duplicates??
#
data[, .N, keyby=.(carrier, ap_id, year, quarter, date)][order(-N)]
wn[, .N, keyby=.(carrier, ap_id, year, quarter, date)][order(-N)]
最后,在试图量化WN进入市场的影响时,你可能至少应该考虑将附近的机场分组。例如,JFK/LGA/EWR经常被认为是"纽约",SFO/OAK/SJC经常被认为是"湾区"。(这些只是例子)。这意味着,例如,如果WN开始从LGA飞往感兴趣的目的地,它也可能影响从JFK和EWR到同一目的地的OA价格。