我正在使用从UCI(我称之为adultdata)检索到的成人数据集。我正在尝试识别我的数据集中的因素。首先,我试图删除缺少数据的观察,所以任何行都有“?”在其中一个V1,V2,...,V15列中,我想删除。我尝试过以下方法:
adultdata1<- adultdata[adultdata$V2 !="?",]
和
adultdata1<- subset(adultdata, V2!="?")
但是,子集adultdata1与我原始数据集的观察次数相同。出于某种原因,我无法确定任何因素。我已经澄清了它们是使用的因素:
sapply(adultdata, class)
我提出的解决方案是确定哪些数值归因于“?”使用:
as.numeric(adultdata$V2)
(事实证明“?”= 1)然后放下“?”值使用:
adultdata1<- adultdata[as.numeric(adultdata$V2) !="1",]
我必须对包含缺失值的每个变量V2,V3,...,V15执行此操作。我觉得必须有一个更简单的方法吗?我也希望能够确定所谓的值,而不是它们的数字类别。
答案 0 :(得分:0)
尝试读取数据并设置stringsAsFactors = F:
read.csv(file = 'myfile',header = T, stringsAsFactors = F)
R将默认为比我更喜欢的因素。我倾向于避免这个因素,除非我明确地想要它。
答案 1 :(得分:0)
strip.white = T是解决方案。这些因素在所有文本前面都有一个空格。就上面所写的内容而言,
adultdata1<- adultdata[adultdata$V2 !=" ?",]
和
adultdata1<- subset(adultdata, V2!="?")
都会奏效。注意&#34;?&#34;前面的空格。