r - 如何创建一个列来指示行是否是第一次出现的值?
问题描述
我有一个包含数千行的数据框。数据框按具有数值的列排序。我想创建一个列,指示该行是否是包含特定数值的第一行。它应该只基于该列。
数据框 A 是我现在如何组织数据的示例,而 B 是我希望如何组织它的示例。
A <- data.frame(c(22, 27, 32, 32, 33, 33, 37), c(121, 243, 765, 322, 433, 435, 728))
colnames(A) <- c("V1", "V2")
B <- data.frame(c(22, 27, 32, 32, 33, 33, 37), c(121, 243, 765, 322, 433, 435, 728), c("y", "y", "y", "n", "y", "n", "y"))
colnames(B) <- c("V1", "V2", "V3")
解决方案
您基本上是在寻找重复项,即
!duplicated(A$V1)
#[1] TRUE TRUE TRUE FALSE TRUE FALSE TRUE
或者
ifelse(!duplicated(A$V1), 'y', 'n')
#[1] "y" "y" "y" "n" "y" "n" "y"
我们也可以避免ifelse
(感谢@jogo)
c("n", "y")[1 + !duplicated(A$V1)]
#[1] "y" "y" "y" "n" "y" "n" "y"
推荐阅读
- python - 检测python程序是否通过Windows GUI(双击)vs命令提示符执行
- r - 绘制指数或分位数色带在零附近发散的栅格
- c - C 中的运算符 &= 和 ~1U
- angular - 位置 0 的角度升级 CLI 意外令牌
- google-apps-script - getOwner() 在文件夹上的谷歌驱动器中失败
- php - Apache2 + PHP-FPM - 未定义函数 apache_getenv()
- azure-resource-manager - 如何在 ARM 模板中迭代内部依赖项?
- excel - 将 dll 函数加载到 Excel 365 中
- node.js - 页面刷新后Websocket重新连接
- .net - 子例程在 Visual Studio 中有效,但不适用于 .exe 文件