Почему мой фрейм данных использует имена столбцов, которые я не назначил? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь создать фрейм данных, который является подмножеством другого фрейма данных, но я хочу изменить имена столбцов. Я знаю, что это можно сделать с помощью функций 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. Почему это происходит?

РЕДАКТИРОВАТЬ: в ответ на комментарии, я попытался опустить кавычки в объявлении dataframe, и я попытался использовать числовой индекс желаемых столбцов ncdata, а не имя столбца. Ни одно из изменений не оказало никакого влияния.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Используйте select из пакета dplyr в tidyverse. Может использоваться одновременно для переименования и подмножества.

library(tidyverse)

temp2 <- ncdata %>%
  select(year,
         report,
         prev_period_last_year = received)
0 голосов
/ 25 января 2019

Попробуйте это. Следуйте этому синтаксису

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...