我有一个数据集,prgeng
。7列,其中1列为educ
。
我想用其他值替换educ
的值。我需要将值1:9替换为1,将10:12替换为2,将13替换为3等等。
使用:
操作符时,它不起作用。
prgeng <- load(url('https://github.com/matloff/fasteR/blob/master/data/prgeng.RData?raw=true'))
educ <- prgeng$educ
educ[educ == 1:9] <- 1 # doesnt work
# Warning: longer object length is not a multiple of shorter object lengthWarning: longer object length is not a multiple of shorter object length
educ[educ == 1] <- 1 # works
我认为这很奇怪,因为另一方面工作。
t1 <- 1:2500
t1[t1 == 1:1000] <- 1 # this works
我明白警告是关键,但我不能理解它的意思。这里的其他例子是基于稍微不同的情况。我不认为它会发生,因为educ
是一个因素,因为:
1.我把educ转换成了一个矢量,它什么也没改变
1.我可以一个接一个地改变这些值
1条答案
按热度按时间hsvhsicv1#
我们可以使用
%in%
代替==
,因为==
是元素级运算符