R将数据帧的值向左移动,同时保留标头

R将数据帧的值向左移动,同时保留标头,r,dataframe,shift,R,Dataframe,Shift,我有一个csv文件,其标题如下: a,b,c,d 1,6,5,6,8 df <- read_csv("test.csv") 我怎样才能做到这一点呢?这个怎么样: headers <- names(df) new_df <- df[, 2:length(df)] names(new_df) <- headers headers在一行代码中,structure命令创建一个对象并分配属性: structure(df[,2:length(df)], names = name

我有一个csv文件,其标题如下:

a,b,c,d
1,6,5,6,8

df <- read_csv("test.csv")
我怎样才能做到这一点呢?

这个怎么样:

headers <- names(df)
new_df <- df[, 2:length(df)]
names(new_df) <- headers

headers在一行代码中,
structure
命令创建一个对象并分配属性:

structure(df[,2:length(df)], names = names(df)[1:(length(df)-1)])
认识到data.frame是等长向量的列表,其中每个向量表示一列,以下操作也适用:

structure(df[2:length(df)], names = names(df)[1:(length(df)-1)])
注意
df[1:长度(df)]
中没有逗号

另外,我喜欢使用负索引从向量或列表中删除项的技巧。因此,我认为更简洁的代码是:

structure(df[-1], names = names(df)[-length(df)])
structure(df[-1], names = names(df)[-length(df)])