在使用dplyr处理4行data.frame对象时,我希望创建一个新的"id“列,该列结合一个前缀字符串和一个值序列。
我所期望的是:
columnA|columnB|columnC|id
data data data id-1
data data data id-2
data data data id-3
data data data id-4我试过的是:
library (dplyr)
y <- x %>%
mutate (id = "id- " & seq(from = 1, to =4, by = 1))发布于 2016-05-22 14:36:08
以下任一项:
x %>% mutate(id = paste0('id-', 1:4))或者:
x %>% mutate(id = paste0('id-', row_number()))或者:
x %>% mutate(id = paste0('id-', 1:n()))给你你想要的:
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基中也可以很容易地实现这一点:
x$id <- paste0('id-', 1:nrow(x))最好不要使用row.names,因为它们并不总是数字(例如,参见row.names(mtcars))。
或者使用data.table包:
library(data.table)
setDT(x)[, id := paste0('id-',.I)]发布于 2016-05-22 14:34:00
您可以使用以下两种方法之一(我假设的很多方法):
1)按以下方式使用dplyr:
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-42)使用简单的基本包分配
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-4https://stackoverflow.com/questions/37375597
复制相似问题