我和R一起工作,这是我的数据
Died.At <- c(22,40,72,41)
Writer.At <- c(16, 18, 36, 36)
First.Name <- c("John", "John", "Walt", "Walt")
Second.Name <- c("Doe", "Poe", "Whitman", "Austen")
Sex <- c("MALE", "MALE", "MALE", "MALE")
writers_df <- data.frame(Died.At, Writer.At, First.Name, Second.Name, Sex)我想根据名字添加一个名为id的新列,所以在本例中,我知道我可以很容易地通过
id<-c("1","1","2","2")但是我有一个大的数据集要处理,而且这个名字以后不会再出现了,所以华特之后再也不会有约翰了,有人能帮我吗?
发布于 2016-02-26 18:47:45
我们可以试试
library(data.table)
setDT(writers_df)[, id:= .GRP, First.Name]或者base R选项是
writers_df$id <- cumsum(!duplicated(writers_df$First.Name))或者使用dplyr
library(dplyr)
writers_df %>%
mutate(id = group_indices_(., .dots="First.Name"))https://stackoverflow.com/questions/35659359
复制相似问题