首页 > 解决方案 > 根据其他变量重命名多行的值

问题描述

我有一个数据框,每个参与者都有多行。他们的一些 id 有错误(例如,有些是双重的)。我想给他们分配一个像这样的新的

dat[dat$participant == "36" & dat$date == "2020-06-07_12h33.46.880"] <- "101"

我收到错误消息“列的重复下标”。我的命令有什么问题?

我也试过

dat$participant[dat$date== "2020-06-07_12h33.46.880"] <- "101"

没有错误,但也没有出现这些值的参与者

标签: rrename

解决方案


该错误duplicate subscripts for columns在这里告诉您,您正在尝试为数据框的无意义部分分配值。所以你需要使用dat$participant而不是只使用dat.

一般来说,你可以使用这个命令:

dat$participant[some condition] <- "101"

例如修改你的第一个命令:

dat$participant[dat$participant == "36" & dat$date == "2020-06-07_12h33.46.880"] <- "101"

但是可能还有另一个问题,例如确保您提供正确的日期(复制并粘贴值,因为连字符破折号的类型很多),这可能会出现在脏数据中,也许 ID 不是字符而是数字等。

因此,如果您需要更具体的帮助,请在此处提供几行数据框。


推荐阅读