首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R在现有列的基础上使用R为dataframe创建新列

R在现有列的基础上使用R为dataframe创建新列
EN

Stack Overflow用户
提问于 2016-02-26 18:44:10
回答 1查看 255关注 0票数 1

我和R一起工作,这是我的数据

代码语言:javascript
运行
复制
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的新列,所以在本例中,我知道我可以很容易地通过

代码语言:javascript
运行
复制
id<-c("1","1","2","2")

但是我有一个大的数据集要处理,而且这个名字以后不会再出现了,所以华特之后再也不会有约翰了,有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 18:47:45

我们可以试试

代码语言:javascript
运行
复制
library(data.table)
setDT(writers_df)[, id:= .GRP, First.Name]

或者base R选项是

代码语言:javascript
运行
复制
writers_df$id <- cumsum(!duplicated(writers_df$First.Name))

或者使用dplyr

代码语言:javascript
运行
复制
library(dplyr)
writers_df %>%
     mutate(id = group_indices_(., .dots="First.Name"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35659359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档