首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除R数据帧中部分列标题

如何删除R数据帧中部分列标题
EN

Stack Overflow用户
提问于 2019-01-15 20:56:42
回答 1查看 47关注 0票数 1

我有一个包含以下列名的数据框:

代码语言:javascript
复制
R > colnames(crime)

 [1] "http...purl.org.linked.data.sdmx.2009.dimension.refArea"
 [2] "Reference.Area"                                         
 [3] "X1996.1997"                                             
 [4] "X1997.1998"                                             
 [5] "X1998.1999"                                             
 [6] "X1999.2000"                                             
 [7] "X2000.2001"                                             
 [8] "X2001.2002"                                             
 [9] "X2002.2003"                                             
[10] "X2003.2004"                                             
[11] "X2004.2005"                                             
[12] "X2005.2006"                                             
[13] "X2006.2007"                                             
[14] "X2007.2008"                                             
[15] "X2008.2009"                                             
[16] "X2009.2010"                                             
[17] "X2010.2011"                                             
[18] "X2011.2012"                                             
[19] "X2012.2013"                                             
[20] "X2013.2014"                                             
[21] "X2014.2015"                                             
[22] "X2015.2016"                                             
[23] "X2016.2017"                                             
[24] "X2017.2018" 

我还有一篇专栏文章:

代码语言:javascript
复制
R > crime[,1]
 [1] http://statistics.gov.scot/id/statistical-geography/S12000033
 [2] http://statistics.gov.scot/id/statistical-geography/S12000034
 [3] http://statistics.gov.scot/id/statistical-geography/S12000041
 [4] http://statistics.gov.scot/id/statistical-geography/S12000035
 [5] http://statistics.gov.scot/id/statistical-geography/S12000036
 [6] http://statistics.gov.scot/id/statistical-geography/S12000005
 [7] http://statistics.gov.scot/id/statistical-geography/S12000006

我想要的是第一个列名是"refArea“,年份是最后4个数字,即"X1996.1997“将是"1997”。我也希望第一列只包含最后9个字符(例如S12000006 -代码不同,有些是S02……或S01...)

我当前的代码如下:

代码语言:javascript
复制
R > colnames(crime)[colnames(crime) == "http...purl.org.linked.data.sdmx.2009.dimension.refArea"] <- "refArea" #replace url with "refArea"

crime$refArea <- substr(crime$refArea, 53, 61) #substring only characters 53-61 from column refArea

colnames(crime) <- c("refArea", "Reference.Area", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018") #Manually change column names

但这感觉非常笨拙和糟糕的编码(我必须对8或9个以上的数据集重复此过程)-您将如何改进这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 20:59:52

一个选项是sub,用于捕获'refArea‘并删除所有前面的字符。要从'X1996.1997‘中删除"X1996“,我们可以使用substr

代码语言:javascript
复制
colnames(crime)[1] <- sub(".*\\.(refArea)", "\\1", colnames(crime)[1])
v1 <-  colnames(crime)[3:ncol(crime)] 
colnames(crime)[3:ncol(crime)] <- substr(v1, nchar(v1)-3, nchar(v1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54199326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档