首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dplyr:如何使用mutate函数将前缀字符串和值序列组合成一个键

dplyr:如何使用mutate函数将前缀字符串和值序列组合成一个键
EN

Stack Overflow用户
提问于 2016-05-22 14:27:51
回答 2查看 2.9K关注 0票数 6

在使用dplyr处理4行data.frame对象时,我希望创建一个新的"id“列,该列结合一个前缀字符串和一个值序列。

我所期望的是:

代码语言:javascript
复制
 columnA|columnB|columnC|id
 data    data    data    id-1
 data    data    data    id-2
 data    data    data    id-3
 data    data    data    id-4

我试过的是:

代码语言:javascript
复制
 library (dplyr)
 y <- x %>%
        mutate (id =  "id- " & seq(from = 1, to =4, by = 1))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-22 14:36:08

以下任一项:

代码语言:javascript
复制
x %>% mutate(id = paste0('id-', 1:4))

或者:

代码语言:javascript
复制
x %>% mutate(id = paste0('id-', row_number()))

或者:

代码语言:javascript
复制
x %>% mutate(id = paste0('id-', 1:n()))

给你你想要的:

代码语言:javascript
复制
  columnA columnB columnC   id
1    data    data    data id-1
2    data    data    data id-2
3    data    data    data id-3
4    data    data    data id-4

当然,在R基中也可以很容易地实现这一点:

代码语言:javascript
复制
x$id <- paste0('id-', 1:nrow(x))

最好不要使用row.names,因为它们并不总是数字(例如,参见row.names(mtcars))。

或者使用data.table包:

代码语言:javascript
复制
library(data.table)
setDT(x)[, id := paste0('id-',.I)]
票数 6
EN

Stack Overflow用户

发布于 2016-05-22 14:34:00

您可以使用以下两种方法之一(我假设的很多方法):

1)按以下方式使用dplyr

代码语言:javascript
复制
df %>% mutate(id = paste0('id-', row_number()))
  columnA columnB columnC   id
1    data    data    data id-1
2    data    data    data id-2
3    data    data    data id-3
4    data    data    data id-4

2)使用简单的基本包分配

代码语言:javascript
复制
df$id <- paste0('id-', row.names(df))
df
  columnA columnB columnC   id
1    data    data    data id-1
2    data    data    data id-2
3    data    data    data id-3
4    data    data    data id-4
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37375597

复制
相关文章

相似问题

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