我想替换R中子集数据帧的一些值,如:
我使用的数据框架:
sw1<- swiss[1:5, 1:4]
sw2 <- rbind(sw1,sw1)
下面是由一些索引标准定义的子集:
sw2[sw2$Examination==15 & sw2$Education==12,]
,其中我想将Examination和Education的值分别替换为1和2。但是,我如何为这些单元格分配值,以便获得具有正确值的sw2数据框呢?
在你的问题中:
sw2 <- rbind(sw2,sw2)
sw2
从何而来?我假设你的rbind()
应该是:
sw2 <- rbind(sw1, sw1)
无论如何,你可以像这样替换这两列:
sw2[sw2$Examination==15 & sw2$Education==12, c('Examination', 'Education')] <- list(1, 2)
我正在隔离需要用c('Examination', 'Education')
更新的列。list(1, 2)
将自动重复指定的行数(在本例中为两行)。
语法有点古怪,所以我可能会做一些更长但更容易阅读的东西。
m <- with(sw2, Examination == 15 & Education == 12)
sw2[m, 'Examination'] <- 1
sw2[m, 'Education'] <- 2