我有一个包含数千行的数据框。数据帧由带有数值的列排序。我想创建一列,指示该行是否为包含特定数值的第一行。它应该仅基于该列。
数据框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")
答案 0 :(得分:5)
您基本上是在寻找重复项,即
!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"