gpt4 book ai didi

r - 如何从系列字符(列名)中删除最后两个元素?

转载 作者:行者123 更新时间:2023-12-01 22:36:28 32 4
gpt4 key购买 nike

在我的数据框中,许多列名称以“.y”结尾,如示例所示:

dat <- data.frame(x1=sample(c(0:1)), id=sample(10), av1.y = sample(10) , av2.y = sample(10) , av3.y = sample(10),av4.y=sample(10))
dat

我想去掉所有以 .y 结尾的列名的最后两个字符,并保持其他字符不变,以便拥有这样的数据框:

colnames(dat) <- c("x1","id","av1","av2","av3","av4")
dat

如何在不重新键入所有列名的情况下实现这一点?我找到了一种对单个字符串执行此操作的方法,但不知道如何对一系列字符串重复执行此操作:

library(stringi)
stri_sub("av3.y",1,3)

最佳答案

一种可能是gsub:

gsub(pattern = ".y", replacement = "", x = names(dat), fixed = TRUE)
# [1] "x1" "id" "av1" "av2" "av3" "av4"

在字符串的末尾更明确地匹配“.y”:

gsub(pattern = "\\.y$", replacement = "", x = names(dat))

关于r - 如何从系列字符(列名)中删除最后两个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22467619/

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