作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经复制了一组数据,并且我想编辑复制的行,方法是在复制行中添加“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/
我是一名优秀的程序员,十分优秀!