gpt4 book ai didi

r - 如何在 R 中操作重复行?

转载 作者:行者123 更新时间:2023-12-02 03:51:41 27 4
gpt4 key购买 nike

我已经复制了一组数据,并且我想编辑复制的行,方法是在复制行中添加“A”,在“代码”列下的原始行中添加“a”。下面的例子。

可重现的数据框:

Date <- c("2016-01-02","2016-01-03","2016-01-04")
Data <- c("0",".2", ".1")
Code <- c("", "", "")
y <- data.frame(Date, Data, Code)
y<- y[rep(row.names(y),2),]
y$Date <- as.Date(y$Date, format='%Y-%m-%d')
y <- y[order(y$Date), ]

当前数据:

> y
Date Data Code
1 2016-01-02 0
1.1 2016-01-02 0
2 2016-01-03 .2
2.1 2016-01-03 .2
3 2016-01-04 .1
3.1 2016-01-04 .1

期望的结果:

> y
Date Data Code
1 2016-01-02 0 a
1.1 2016-01-02 0 A
2 2016-01-03 .2 a
2.1 2016-01-03 .2 A
3 2016-01-04 .1 a
3.1 2016-01-04 .1 A

最佳答案

duplicated(y)如果第一次遇到某行,则返回一个 bool 向量,值为 FALSE;如果某行重复,则返回 TRUE。您可以按如下方式使用它:

y$Code = ifelse(duplicated(y),"A","a")

输出:

          Date Data         Code
1 2016-01-02 0 a
1.1 2016-01-02 0 A
2 2016-01-03 .2 a
2.1 2016-01-03 .2 A
3 2016-01-04 .1 a
3.1 2016-01-04 .1 A

y <- data.frame(Date, Data, Code)中无需预先创建列,这样就可以变成:y <- data.frame(Date, Data)

关于r - 如何在 R 中操作重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com