小编Die*_*lue的帖子

没有循环的Dataframe中的子字符串,填充和粘贴列

我有这个数据框,它看起来像这样:

在此输入图像描述

我需要从列中的第一个字符开始,将整个值放入a中,然后在末尾放置一个计数器,在a列中重复递增.此计数器必须始终为三.最终结果如下:

在此输入图像描述

所以没有什么戏剧性的,我能用以下代码做这件事(准备给人留下深刻的印象):

library(stringr) 
tk <- ""
for (i in 1:nrow(df)){
  if (tk == df$an[i]){
    counter <- counter + 1
  } else {
    tk <- df$an[i]
    counter <- 1
  }
  df$ap[i] <- counter
}

df$ap <- paste0(substr(df$at, 1, 1), df$an, str_pad(df$ap, 3, pad="0"))
Run Code Online (Sandbox Code Playgroud)

我对这次灾难不满意.它似乎不是很"R",我非常希望永远不要让它看到光明的一天.我怎样才能让这更"R"?

我很欣赏这个建议.

string r dataframe stringr

9
推荐指数
3
解决办法
292
查看次数

标签 统计

dataframe ×1

r ×1

string ×1

stringr ×1