我有一个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
我怎样才能做到这一点?
那这个呢?
headers <- names(df)
new_df <- df[, 2:length(df)]
names(new_df) <- 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:length(df)]
.
另外,我喜欢用负数索引从一个向量或列表中删除项目的技巧。 所以我认为一个更简洁的代码是:。
structure(df[-1], names = names(df)[-length(df)])