(R) [] / subset() returns 一个空数据框
(R) [] / subset() returns an empty data frame
我有一个看起来像这样的大型数据集,还有几十万个条目,保存为 data
:
Group1 dtm_Flight_Date Departure Arrival str_Fare_Category_Ident
1 8P104 06/11/2010 9:05 YYJ YVR B
2 8P104 06/11/2010 9:05 YYJ YVR K
3 8P104 06/11/2010 9:05 YYJ YVR L
4 8P104 06/11/2010 9:05 YYJ YVR N
5 8P104 06/11/2010 9:05 YYJ YVR Q
6 8P104 06/11/2010 9:05 YYJ YVR Y
7 8P104 6/14/2010 9:05:00 AM YYJ YVR B
8 8P104 6/14/2010 9:05:00 AM YYJ YVR K
9 8P104 6/14/2010 9:05:00 AM YYJ YVR L
10 8P104 6/14/2010 9:05:00 AM YYJ YVR N
现在,我想做的是根据 'str_Fare_Category_Ident' 对数据进行子集化,尤其是在它等于 Y 的地方。虽然我认为这应该是我以前完成的一项简单任务,但我有有些麻烦。
我试过了
public_bc <- data[data[, 5]=="Y", ]
但这只是 returns 一个空数据框。还尝试过:
public_bc <- data[data$str_Fare_Category_Ident=="Y", ]
同样的问题。
我试过用subset(),也没用:
public_bc <- subset(data, data[, 5]=="Y")
还有 returns 一个空数据框。
str_Fare_Category_Ident 目前是一个因素,但我也尝试将其更改为 as.character() 而不做任何更改。
如果有 lagging/leading 个空格,则可能会发生这种情况。删除那些,它应该工作。
library(stringr)
data[,5] <- str_trim(data[,5])
或者
data[,5] <- gsub('^\s+|\s+$', '', data[,5])
data[data[,5]=='Y',]
另一个不删除空格的选项是 grep
data[grep('\bY\b', data[,5]),]
我有一个看起来像这样的大型数据集,还有几十万个条目,保存为 data
:
Group1 dtm_Flight_Date Departure Arrival str_Fare_Category_Ident
1 8P104 06/11/2010 9:05 YYJ YVR B
2 8P104 06/11/2010 9:05 YYJ YVR K
3 8P104 06/11/2010 9:05 YYJ YVR L
4 8P104 06/11/2010 9:05 YYJ YVR N
5 8P104 06/11/2010 9:05 YYJ YVR Q
6 8P104 06/11/2010 9:05 YYJ YVR Y
7 8P104 6/14/2010 9:05:00 AM YYJ YVR B
8 8P104 6/14/2010 9:05:00 AM YYJ YVR K
9 8P104 6/14/2010 9:05:00 AM YYJ YVR L
10 8P104 6/14/2010 9:05:00 AM YYJ YVR N
现在,我想做的是根据 'str_Fare_Category_Ident' 对数据进行子集化,尤其是在它等于 Y 的地方。虽然我认为这应该是我以前完成的一项简单任务,但我有有些麻烦。
我试过了
public_bc <- data[data[, 5]=="Y", ]
但这只是 returns 一个空数据框。还尝试过:
public_bc <- data[data$str_Fare_Category_Ident=="Y", ]
同样的问题。
我试过用subset(),也没用:
public_bc <- subset(data, data[, 5]=="Y")
还有 returns 一个空数据框。
str_Fare_Category_Ident 目前是一个因素,但我也尝试将其更改为 as.character() 而不做任何更改。
如果有 lagging/leading 个空格,则可能会发生这种情况。删除那些,它应该工作。
library(stringr)
data[,5] <- str_trim(data[,5])
或者
data[,5] <- gsub('^\s+|\s+$', '', data[,5])
data[data[,5]=='Y',]
另一个不删除空格的选项是 grep
data[grep('\bY\b', data[,5]),]