从第2列R开始删除列的第一个字母

时间:2018-04-02 00:37:56

标签: r

我正在使用R。

开发世界银行数据库

我的数据集如下所示:

name code y1 y2 y3 y4 .... y2000
Dan  D1   0  1 2 0 .... 2
Max  M1   0  2 0 4 .... 6

我想从第3列开始删除每个列名开头的“y”。

name code 1 2 3 4 .... 2000
Dan D1  0 1 2 0 .... 2
Max M1  0 2 0 4 .... 6

我试过了:

names(dataset_1[,c(3:2002)])<-substring(names(dataset_1[,c(3:2002)]), 2)

但它不起作用..

1 个答案:

答案 0 :(得分:1)

你可以这样做,虽然R不喜欢列名是数字,所以如果你能避免它我会:

df <- data.frame(a = 1, b = 2, y1 = 1, y2 = 1, y3 = 1)
df
#>   a b y1 y2 y3
#> 1 1 2  1  1  1

names(df)[3:ncol(df)] <- substring(names(df)[3:ncol(df)], 2)
df
#>   a b 1 2 3
#> 1 1 2 1 1 1

要访问列,您需要编写df$'1'而不是简单地df$1