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

问题描述 投票:0回答:2

我有一个csv文件,标题为 。

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

df <- read_csv("test.csv")

由于某些原因,例子中的值1是不正确的,为了纠正文件,我想把所有其他的值向左移动,从而删除1,但保留以.结尾的列。

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

我怎样才能做到这一点?

r dataframe shift
2个回答
1
投票

那这个呢?

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

0
投票

在一行代码中 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:length(df)].

另外,我喜欢用负数索引从一个向量或列表中删除项目的技巧。 所以我认为一个更简洁的代码是:。

structure(df[-1], names = names(df)[-length(df)])
© www.soinside.com 2019 - 2024. All rights reserved.