我正在尝试创建一个数据框,该数据框是另一个数据框的子集,但是我想更改列名。我知道可以通过使用names()或colnames()函数来完成此操作,但是我想在创建数据框时进行名称更改。
temp2<- data.frame(
'year' = (ncdata[,'year'] + 1),
'report' = (ncdata[,'report'] + 1),
'prev_period_last_year' = ncdata[,'received']
)
我希望temp2包含3列名称(年份,报告和prev_period_last_year)。取而代之的是,temp2的第三列仅使用来自ncdata的原始名称。为什么会这样?
编辑:为了回应评论,我尝试在数据框声明中省略引号,并且尝试使用所需ncdata列的数字索引而不是列名。两种更改都没有任何效果。
答案 0 :(得分:1)
尝试一下。遵循这种语法
data1<-data.frame(Year=c(2017,2016,2019),Received=c(340,560,780))
data1
data.frame(Test=data1[,1]+1,Test1=data1[,2]+1)
结果:
Test Test1
1 2018 341
2 2017 561
3 2020 781
这也有效:
data.frame(Testme=data1[,"Year"]+1)
Testme
1 2018
2 2017
3 2020
答案 1 :(得分:1)
使用select
中dplyr
包中的tidyverse
。它可以同时用于重命名和子集。
library(tidyverse)
temp2 <- ncdata %>%
select(year,
report,
prev_period_last_year = received)