基于字符值的子集数据框
subset data frame based on character value
我正在尝试使用 colClasses='character'
选项对通过 read.table 导入的数据框进行子集化。
数据的小样本可以found here
Full99<-read.csv("File.csv",header=TRUE,colClasses='character')
删除重复项、缺失值和所有不必要的列后,我得到了这些维度的数据框:
>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 的新手,所以如果我忽略了一些发布惯例,我深表歉意,但如果有人有灵丹妙药让这些数据合作,我很乐意你的见解:)
如果您使用正确的变量值,不同的方法应该会起作用。您的问题可能是变量名中有多余的空格。
您可以使用 grep
避免此类问题,例如:
NoMissNoDup99[grep("Apartment|Duplex|Business",NoMissNoDup99$Service.Type),]
## exclude
MU99<-subset(NoMissNoDup99,!(Service.Type %in% c('Hospital','Hotel or Motel')))
##include
MU99<-subset(NoMissNoDup99,Service.Type %in% c('Apartment','Duplex'))
我正在尝试使用 colClasses='character'
选项对通过 read.table 导入的数据框进行子集化。
数据的小样本可以found here
Full99<-read.csv("File.csv",header=TRUE,colClasses='character')
删除重复项、缺失值和所有不必要的列后,我得到了这些维度的数据框:
>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 的新手,所以如果我忽略了一些发布惯例,我深表歉意,但如果有人有灵丹妙药让这些数据合作,我很乐意你的见解:)
如果您使用正确的变量值,不同的方法应该会起作用。您的问题可能是变量名中有多余的空格。
您可以使用 grep
避免此类问题,例如:
NoMissNoDup99[grep("Apartment|Duplex|Business",NoMissNoDup99$Service.Type),]
## exclude
MU99<-subset(NoMissNoDup99,!(Service.Type %in% c('Hospital','Hotel or Motel')))
##include
MU99<-subset(NoMissNoDup99,Service.Type %in% c('Apartment','Duplex'))