首页 > 解决方案 > 自动在表格条目前添加文本

问题描述

使用 R,我创建了一些看起来像这样的假数据:

file <-data.frame(
    
    "id" = c("1", "2", "3","4", "5","6", "7", "8", "9", "10"),
 "var_1" = c("A", "B", "B","A", "B","B", "B", "A", "A", "B"),
 "var_2" = c("AA", "BB", "BB","AA", "BB","BB", "BB", "AA", "AA", "BB")
)

有没有办法在每个单元格条目前面添加一些文本,就像我在下面(手动)做的那样?

f <-data.frame(
    
    "id" = c("1", "2", "3","4", "5","6", "7", "8", "9", "10"),
 "var_1" = c("var_1_A", "var_1_B", "var_1_B","var_1_A", "var_1_B","var_1_B", "var_1_B", "var_1_A", "var_1_A", "var_1_B"),
 "var_2" = c("var_2_AA", "var_2_BB", "var_2_BB","var_2_AA", "var_2_BB","var_2_BB", "var_2_BB", "var_2_AA", "var_2_AA", "var_2_BB")
)

有没有办法自动做到这一点?

谢谢

标签: rdata-manipulation

解决方案


您可以使用 :

library(dplyr)

file %>% mutate(across(starts_with('var'), ~paste(cur_column(), ., sep = '_')))

#   id   var_1    var_2
#1   1 var_1_A var_2_AA
#2   2 var_1_B var_2_BB
#3   3 var_1_B var_2_BB
#4   4 var_1_A var_2_AA
#5   5 var_1_B var_2_BB
#6   6 var_1_B var_2_BB
#7   7 var_1_B var_2_BB
#8   8 var_1_A var_2_AA
#9   9 var_1_A var_2_AA
#10 10 var_1_B var_2_BB

或在基础 R 中:

file[-1] <- Map(function(x, y) paste(x, y, sep = '_'), file[-1], names(file)[-1])

推荐阅读