【问题标题】:Replace multiple column values in a subset dataframe in R替换R中子集数据框中的多个列值
【发布时间】:2014-08-24 06:37:17
【问题描述】:

我想替换 R 中子集数据框的一些值,例如:

我使用的数据框:

sw1<- swiss[1:5, 1:4]
sw2 <- rbind(sw1,sw1)

这是一些索引标准定义的子集:

sw2[sw2$Examination==15 & sw2$Education==12,]

我想将 Exam 和 Education 的值分别替换为 1 和 2。 但是如何为这些单元格分配值,以便获得具有正确值的 sw2 数据框。

【问题讨论】:

    标签: r replace dataframe subset


    【解决方案1】:

    在你的问题中:

    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
    

    【讨论】:

    • 如果您的条件列之一包含 NA 值,您可以添加类似 m &lt;- na.omit(m) 的内容以使其正常工作。
    猜你喜欢
    • 2014-11-04
    • 2016-01-03
    • 1970-01-01
    • 2022-01-14
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多