从新数据帧的列名中删除“X”字母[重复]

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

我试图通过year分组并为每个weight求和year但是当我的新数据框创建时,列名称以恼人的“X”开头,如“X2000”而不是2000。当然我可以删除它或在创建后用“”替换它但我希望它不是从一开始就创建的,因为这个方法将应用于具有更多列的数据帧。

library(tidyverse)

year<-c("2000","2000","2001","2002","2000","2002")
weight<-c(0.5,0.7,0.8,0.7,0.6,0.9)
YG<-data.frame(year,weight)


w<-data.frame(YG %>%
                     group_by(year) %>%
                     summarise(n = round(sum(weight)),
                               g = n()) %>%
                     select(-g) %>%
                     spread(year, n, fill = 0))
r
2个回答
3
投票

虽然不是真的可取,但你想要的是在check.names = FALSE电话中的data.frame

data.frame(YG %>% group_by(year) %>%
             summarise(n = round(sum(weight)), g = n()) %>%
             select(-g) %>% spread(year, n, fill = 0), 
           check.names = FALSE)
#   2000 2001 2002
# 1    2    1    2

1
投票

另一种选择:new_YG是w

names(new_YG)<-sapply(str_remove_all(colnames(new_YG),"X"),"[")
names(new_YG)
new_YG
© www.soinside.com 2019 - 2024. All rights reserved.