我尝试使用cor()函数关联R中的两个数组。但是,为了比较它们,我需要它们的长度相同。问题是,我从更大的数据集中获取数组,并且在一个变量中有NA值,而在另一个变量中没有。我首先从更大的数据集中对我想要的样本进行子集化,现在我尝试将变量分成他们自己的数组并进行比较。我能够从其中一个变量中删除NA,但这会留下两个不同长度的数组。
到目前为止,这是代码:
## Flight Differences in Distance
SampleFlights <- subset(Jan2017DataSet, Jan2017DataSet$ORIGIN ==
"LAX" & Jan2017DataSet$DISTANCE < 500)
Dep_Delay <- c(SampleFlights$DEP_DELAY)
Dist <- c(SampleFlights$DISTANCE)
##
Dep_Delay <- Dep_Delay[!is.na(Dep_Delay)]
cor(SampleFlights$DISTANCE, Dep_Delay)
答案 0 :(得分:1)
删除第一个子集中的NA
SampleFlights <- subset(Jan2017DataSet, Jan2017DataSet$ORIGIN ==
"LAX" & Jan2017DataSet$DISTANCE < 500 & !is.na(Dep_Delay))
要找到相关性,您需要将两个变量来自同一观察(飞行),因此您需要删除整行。
答案 1 :(得分:1)
由于这些值来自同一数据帧,因此您可以在执行相关之前从数据帧中删除行:
SampleFlights <- SampleFlights[!is.na(SampleFlights$DEP_DELAY),];
这也适用于subset
运算符:
SampleFlights <- subset(SampleFlights, !is.na(DEP_DELAY));
如果您需要删除任一数据集中存在的NA值,可以使用|
:
SampleFlights <-
subset(SampleFlights, !is.na(DEP_DELAY) | !is.na(DISTANCE));
可以在没有中间变量赋值的情况下完成相关:
cor(SampleFlights$DISTANCE, SampleFlights$DEP_DELAY);