gpt4 book ai didi

r - 我想用循环更改列名

转载 作者:行者123 更新时间:2023-12-02 06:46:16 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据集列名

state.abb, state.area, state.division, state.region

我想更改列的名称并删除“状态”。部分只留下“abb”、“area”、“division”和“region”。我使用 substr func 在 df 列上循环编写了这段代码,但它不起作用,也没有给出错误。请问这是怎么回事?


for(e in 1:ncol(df)){
colnames(df[e])<-substring(colnames(df[e]),7)
}

最佳答案

在这里,我们可以将colnames(df[e])改为colnames(df)[e]

for(e in seq_along(df)){
colnames(df)[e] <- substring(colnames(df)[e],7)
}

substring 是矢量化的,因此我们可以直接执行此操作而无需任何 for 循环

colnames(df) <- substring(colnames(df), 7)

此外,如果我们要删除包括 . 的前缀,假设前缀可以是任意长度的通用选项是 sub

colnames(df) <- sub(".*\\.", "", colnames(df))

一个例子,

data(mtcars)
colnames(mtcars[1]) <- "hello"
colnames(mtcars[1])
#[1] "mpg" # no change
colnames(mtcars)[1] <- "hello"
colnames(mtcars[1])
#[1] "hello" # changed

关于r - 我想用循环更改列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61565905/

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