[英]A more efficient way to strip a character from column names in an R dataframe?
我想從這個 R 數據框中的列名中刪除 X。
> d
days X2000 X2001 X2002 X2003
1 June-01 90 85 88 75
2 June-02 93 84 88 81
3 June-03 94 83 85 83
這是我到目前為止所得到的。 它通過獲取第 2 到第 5 列的 substring 得到我想要的列名。
> new_colnames <- c()
> for (name in colnames(d[2:5])) { new_colnames <- c(new_colnames, substring(name, 2)) }
> colnames(d) <- c('days', new_colnames)
> d
days 2000 2001 2002 2003
1 June-01 90 85 88 75
2 June-02 93 84 88 81
3 June-03 94 83 85 83
有沒有更有效的方法來做到這一點? 什么是“最佳實踐”?
正如上面已經有人建議的那樣,您只需要使用sub
命令。 我在上面重新創建了您的數據庫並這樣做了:
# Load piping library:
library(tidyverse)
# Create days variable:
days <- c("June-01",
"June-02",
"June-03")
# Create year variables:
X2000 <- c(90,93,94)
X2001 <- c(85,84,83)
X2002 <- c(88,88,85)
X2003 <- c(75,81,83)
# Make data frame with variables:
df <- data.frame(days,
X2000,
X2001,
X2002,
X2003)
此時,您應該擁有與上面相同的數據框:
Xdays X2000 X2001 X2002 X2003
1 June-01 90 85 88 75
2 June-02 93 84 88 81
3 June-03 94 83 85 83
從這里您只需要更改名稱:
# Change names:
names(df) <- sub("X", "", names(df))
# Print:
df
這應該打印這個新表:
days 2000 2001 2002 2003
1 June-01 90 85 88 75
2 June-02 93 84 88 81
3 June-03 94 83 85 83
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.