R根据另一个数据框中的匹配名称替换同名

斯波克先生

我想基于另一个数据框重命名数据框中的某些列。我有2个数据框,一个带有列名称的代码,另一个带有一列代码和一个字符串的秒。

df = as.data.frame(matrix(NA, 3, 60)) colnames(df) = c(paste0(sprintf("S%s",seq(10,19))), paste0(sprintf("R%s",seq(20,50))), paste0(sprintf("F%s",seq(51,69))))

namelist = as.data.frame(c(paste0(sprintf("B%s",seq(10,19))), paste0(sprintf("R%s",seq(20,50))), paste0(sprintf("A%s",seq(51,69)))))
colnames(namelist) = "Code"
myFun <- function(n = 5000) {
  a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
  paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))}
namelist$Name = myFun(nrow(namelist))

我现在想重命名df中的列名,这些列在名称列表中。它们的新名称应该是名称列表中匹配代码后面的字符串。

结果应为:将未作为代码列出的列名保留在名称列表中,并将R20-R50替换为字符串。

我需要一个真正将代码整合在一起的解决方案,因为我也可能将Codes合并为columnanmes,例如R40 + R41,不应重命名。

知道怎么做吗?

阿克伦

我们可以match用来获取索引

i1 <- match(colnames(df), namelist$Code)
i2 <- !is.na(i1) # to take care of non matches which are NA
names(df)[i2] <- namelist$Name[i1[i2]]
names(df)
#[1] "S10"        "S11"        "S12"        "S13"        "S14"        "S15"        "S16"        "S17"        "S18"       
#[10] "S19"        "NRROX3720Q" "AJDIO5627R" "PNGQI9045F" "PMRKH3945W" "AWTUS8801K" "FAUSS0775K" "RHMDT7354P" "EHFXN5677T"
#[19] "DEXAD5460Z" "XNPJU6465R" "ISLKV8962F" "ZVAAT4099D" "MWCLD5013G" "MSSCG1315D" "NKJBC5303V" "EDHHR9300M" "CVWHP7658I"
#[28] "BPUSL4348S" "LPEWZ1407A" "QACRV3987M" "XMHYQ8544N" "UJGRX9778J" "KPAYY3203M" "JTETK9509P" "VYNYF6624P" "RDDZD3099N"
#[37] "SHUES3288G" "CGFKB5625F" "WTUEX0452E" "BSDUR3721G" "BZMND9193I" "F51"        "F52"        "F53"        "F54"       
#[46] "F55"        "F56"        "F57"        "F58"        "F59"        "F60"        "F61"        "F62"        "F63"       
#[55] "F64"        "F65"        "F66"        "F67"        "F68"        "F69"       

即,如果没有匹配项,则列名称保持不变

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据R中的另一个数据框条目替换空白?

来自分类Dev

根据另一个数据框中的匹配ID替换数据框列值

来自分类Dev

根据dplyr与另一个数据框的匹配来更改数据框中的列名称

来自分类Dev

如何根据R中另一个数据框中的匹配值转换值?

来自分类Dev

根据来自另一个数据框的转换表替换列中的字符

来自分类Dev

用另一个数据框中同名列的平均值替换一个数据框中的零值列

来自分类Dev

用另一个数据框中的匹配变量替换列标题

来自分类Dev

Python根据另一个数据框中的列值匹配列名

来自分类Dev

Python根据另一个数据框中的列值匹配列名

来自分类Dev

根据R中两个数据框的两列中的匹配对名称,将值添加到另一个数据框的其他值中

来自分类Dev

替换数据框中的值仅与另一个数据框中匹配的值有关

来自分类Dev

根据与另一个数据框的(唯一)部分匹配,从数据框中删除行

来自分类Dev

根据另一个数据框中的名称的行索引将一个数据框中的名称转换为数字

来自分类Dev

根据R中另一个数据框的索引创建一个新的数据框

来自分类Dev

如何根据另一个数据框中的查找值替换熊猫数据框值?

来自分类Dev

根据条件,将数据框的某些值替换为另一个数据框中的值

来自分类Dev

根据另一个数据框中的匹配条件将列添加到R中的数据框中

来自分类Dev

根据与另一个数据框的匹配在数据框中创建新列

来自分类Dev

根据另一个数据框中的匹配数据更新一个数据框中的值

来自分类Dev

根据另一个数据框替换一个数据框中的列中的多个值

来自分类Dev

用另一个数据框中的数据替换数据框中的数据

来自分类Dev

根据匹配的值,使用另一个数据框中的值更新一个数据框中的列

来自分类Dev

根据关键列值熊猫将一个数据框中的行与另一个数据框中的行匹配

来自分类Dev

根据R中另一数据框中的条件值来匹配/子集一个数据框

来自分类Dev

根据 R 中另一个数据框中的行选择数据框中的行

来自分类Dev

使用另一个数据框作为R中的键替换数据框中的所有值

来自分类Dev

使用另一个数据框作为R中的键替换数据框中的所有值

来自分类Dev

从数据框中删除与另一个数据框R中的两列匹配的行

来自分类Dev

使用条件使用 R 中的另一个数据框替换数据框的值

Related 相关文章

  1. 1

    如何根据R中的另一个数据框条目替换空白?

  2. 2

    根据另一个数据框中的匹配ID替换数据框列值

  3. 3

    根据dplyr与另一个数据框的匹配来更改数据框中的列名称

  4. 4

    如何根据R中另一个数据框中的匹配值转换值?

  5. 5

    根据来自另一个数据框的转换表替换列中的字符

  6. 6

    用另一个数据框中同名列的平均值替换一个数据框中的零值列

  7. 7

    用另一个数据框中的匹配变量替换列标题

  8. 8

    Python根据另一个数据框中的列值匹配列名

  9. 9

    Python根据另一个数据框中的列值匹配列名

  10. 10

    根据R中两个数据框的两列中的匹配对名称,将值添加到另一个数据框的其他值中

  11. 11

    替换数据框中的值仅与另一个数据框中匹配的值有关

  12. 12

    根据与另一个数据框的(唯一)部分匹配,从数据框中删除行

  13. 13

    根据另一个数据框中的名称的行索引将一个数据框中的名称转换为数字

  14. 14

    根据R中另一个数据框的索引创建一个新的数据框

  15. 15

    如何根据另一个数据框中的查找值替换熊猫数据框值?

  16. 16

    根据条件,将数据框的某些值替换为另一个数据框中的值

  17. 17

    根据另一个数据框中的匹配条件将列添加到R中的数据框中

  18. 18

    根据与另一个数据框的匹配在数据框中创建新列

  19. 19

    根据另一个数据框中的匹配数据更新一个数据框中的值

  20. 20

    根据另一个数据框替换一个数据框中的列中的多个值

  21. 21

    用另一个数据框中的数据替换数据框中的数据

  22. 22

    根据匹配的值,使用另一个数据框中的值更新一个数据框中的列

  23. 23

    根据关键列值熊猫将一个数据框中的行与另一个数据框中的行匹配

  24. 24

    根据R中另一数据框中的条件值来匹配/子集一个数据框

  25. 25

    根据 R 中另一个数据框中的行选择数据框中的行

  26. 26

    使用另一个数据框作为R中的键替换数据框中的所有值

  27. 27

    使用另一个数据框作为R中的键替换数据框中的所有值

  28. 28

    从数据框中删除与另一个数据框R中的两列匹配的行

  29. 29

    使用条件使用 R 中的另一个数据框替换数据框的值

热门标签

归档