通过旧列名中的字符串 ID 更改列名
Change column name by string ID in old column name
考虑一下我在 R 中有一个数据框,其名称为:
data:
A B C D E V1 V2 V3 V4 V5 V6 Vx...
2 3 4 5 6 5 5 5 5 2 2
如何获取所有包含 V
的值并将其替换为 Sample
所以我得到:
数据:
A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Samplex...
2 3 4 5 6 5 5 5 5 2 2
我需要一个通用的解决方案,因为在我的数据框中,带有 V 的列的数量以及位置都在变化。非常感谢!
一个简单的解决方案是使用 sub
和 regex 来修改列名,这里 ^V
匹配开头的字母 V
字符串的一部分,它被替换为 Sample
:
names(df) <- sub("^V", "Sample", names(df))
df
# A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6
#1 2 3 4 5 6 5 5 5 5 2 2
另一种选择是对 'V' 列名称进行子集化并更新数据集
i1 <- grep("^V", names(df))
names(df)[i1] <- paste0("Sample", seq_along(i1))
df
# A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6
#1 2 3 4 5 6 5 5 5 5 2 2
数据
df <- structure(list(A = 2L, B = 3L, C = 4L, D = 5L, E = 6L, V1 = 5L,
V2 = 5L, V3 = 5L, V4 = 5L, V5 = 2L, V6 = 2L), .Names = c("A",
"B", "C", "D", "E", "V1", "V2", "V3", "V4", "V5", "V6"),
class = "data.frame", row.names = c(NA, -1L))
考虑一下我在 R 中有一个数据框,其名称为:
data:
A B C D E V1 V2 V3 V4 V5 V6 Vx...
2 3 4 5 6 5 5 5 5 2 2
如何获取所有包含 V
的值并将其替换为 Sample
所以我得到:
数据:
A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Samplex...
2 3 4 5 6 5 5 5 5 2 2
我需要一个通用的解决方案,因为在我的数据框中,带有 V 的列的数量以及位置都在变化。非常感谢!
一个简单的解决方案是使用 sub
和 regex 来修改列名,这里 ^V
匹配开头的字母 V
字符串的一部分,它被替换为 Sample
:
names(df) <- sub("^V", "Sample", names(df))
df
# A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6
#1 2 3 4 5 6 5 5 5 5 2 2
另一种选择是对 'V' 列名称进行子集化并更新数据集
i1 <- grep("^V", names(df))
names(df)[i1] <- paste0("Sample", seq_along(i1))
df
# A B C D E Sample1 Sample2 Sample3 Sample4 Sample5 Sample6
#1 2 3 4 5 6 5 5 5 5 2 2
数据
df <- structure(list(A = 2L, B = 3L, C = 4L, D = 5L, E = 6L, V1 = 5L,
V2 = 5L, V3 = 5L, V4 = 5L, V5 = 2L, V6 = 2L), .Names = c("A",
"B", "C", "D", "E", "V1", "V2", "V3", "V4", "V5", "V6"),
class = "data.frame", row.names = c(NA, -1L))