我正在尝试使用colClasses='character'
选项对我使用read.table导入的数据框进行子集化。
一小部分数据可以是found here
Full99<-read.csv("File.csv",header=TRUE,colClasses='character')
删除重复项,缺失值和所有不必要的列后,我得到了这些dimmensions的数据框:
>dim(NoMissNoDup99)
[1] 81551 6
我有兴趣将数据简化为仅包含特定Service.Type
我尝试过子集函数:
MU99<-subset(NoMissNoDup99,Service.Type=='Apartment'|
Service.Type=='Duplex'|
Service.Type=='Triplex'|
Service.Type=='Fourplex',
select=Service.Type:X.13)
dim(MU99)
[1] 0 6
MU99<-NoMissNoDup99[which(NoMissNoDup99$Service.Type!='Hospital'
& NoMissNoDup99$Service.Type!= 'Hotel or Motel'
& NoMissNoDup99$Service.Type!= 'Industry'
& NoMissNoDup99$Service.Type!= 'Micellaneous'
& NoMissNoDup99$Service.Type!= 'Parks & Municipals'
& NoMissNoDup99$Service.Type!= 'Restaurant'
& NoMissNoDup99$Service.Type!= 'School or Church or Charity'
& NoMissNoDup99$Service.Type!='Single Residence'),]
但这不会删除观察结果。
我尝试了同样的方法但略微调整了......
MU99<-NoMissNoDup99[which(NoMissNoDup99$Service.Type=='Apartment'
|NoMissNoDup99$Service.Type=='Duplex'
|NoMissNoDup99$Service.Type=='Triplex'
|NoMissNoDup99$Service.Type=='Fourplex'), ]
但这消除了每一个观察......
最后一个子集应该有大约8000个观察值
我对R和Stack Overflow很新,所以我很抱歉,如果有一些我不理会的帖子惯例,但如果有人有灵丹妙药来让这些数据合作,我会很喜欢你的见解:)
答案 0 :(得分:1)
如果使用正确的变量值,则不同的方法应该有效。您的问题可能是变量名中的额外空格。
您可以使用grep
来避免此类问题,例如:
NoMissNoDup99[grep("Apartment|Duplex|Business",NoMissNoDup99$Service.Type),]
答案 1 :(得分:1)
## exclude
MU99<-subset(NoMissNoDup99,!(Service.Type %in% c('Hospital','Hotel or Motel')))
##include
MU99<-subset(NoMissNoDup99,Service.Type %in% c('Apartment','Duplex'))