% mutate(prod = str_c(prod, rowid(prod))) -6ren">
gpt4 book ai didi

r - 在 r 中使用 "for"循环和表格

转载 作者:行者123 更新时间:2023-12-04 00:13:30 24 4
gpt4 key购买 nike

我有以下数据库

library(data.table)
dt <- data.table(prod= c("AAAA","BBBB","CCCC"),
version= c(4,3,5))

我想得到这个

AAAA1
AAAA2
AAAA3
AAAA4
BBBB1
BBBB2
BBBB3
CCCC1
CCCC2
CCCC3
CCCC4
CCCC5

现在我有以下代码,但它只适用于 AAAA,但不适用于其余的

list <- c()

for(i in 1:dt$version){

list[[i]] <- paste0(dt$prod,i)

}

最佳答案

使用 uncount

library(dplyr)
library(tidyr)
library(stringr)
dt %>%
uncount(version) %>%
mutate(prod = str_c(prod, rowid(prod)))

-输出

#    prod
# 1: AAAA1
# 2: AAAA2
# 3: AAAA3
# 4: AAAA4
# 5: BBBB1
# 6: BBBB2
# 7: BBBB3
# 8: CCCC1
# 9: CCCC2
#10: CCCC3
#11: CCCC4
#12: CCCC5

或者用 rep

dt[rep(seq_len(.N), version)][, prod := paste0(prod, rowid(prod))][]

关于r - 在 r 中使用 "for"循环和表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66128487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com