R: Удаление строки не сдвигает данные вверх для некоторых .csv, но делает для файла .xls - PullRequest
1 голос
/ 23 октября 2019

Мне было интересно посмотреть на ВВП нескольких штатов в течение 4 лет. После того, как я импортировал файл .csv, я переименовал имена столбцов, а затем удалил ненужные строки. В результате данные пронумерованы по 10-й строке. Таким образом, он идет от 1 до 9, затем начинается с 11.

Когда я попробовал это с аналогичным фреймом данных, импортированным из файла .xls, данные не пропускают 10-ю строку, когда пронумерованы.

gdp<-read.csv("GDP_per.csv",skip = 4)
gdp<-gdp%>%
  rename(
    "2014" = X2013.2014,
    "2015" = X2014.2015,
    "2016" = X2015.2016,
    "2017" = X2016.2017,
    "2018" = X2017.2018
  )
gdp<-gdp[c(-(10),-(53:64)),]


gdp2<-read_excel("GDP_dol.xls", skip = 5)
gdp2<-gdp2[,c(2,20:24)]
gdp2<-gdp2[c(-(10),-(53:64)),]

9 Делавэр 10,7 5,5 -0,7 2,5 3,9

11 Флорида 4,9 6,5 5,0 4,4 5,8

против

9 Делавэр 67178,9 70896,2 70379,8 72167,2 74973,3

10 Флорида 839706,0 894044,0 938370,3 979464,6 1036323,2

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Я бы посоветовал вам использовать функцию read_csv() из пакета readr, которая импортирует ее в виде таблицы, что приводит к тому же поведению.

0 голосов
/ 23 октября 2019

Функция read.csv возвращает data.frame, в то время как read_excel возвращает tibble. Они не одинаковы и не обязательно ведут себя одинаково. Фрейм данных сохраняет исходные имена строк до тех пор, пока вы не измените их, например,

(x <- data.frame(V1=1:10, V2=11:20))
(x2 <- x[-5, ])                # Row name 5 is missing
rownames(x2) <- NULL
x2                             # Row names 1 - 9

Tibble автоматически перенумерует строки:

library(tidyr)
xt <- tibble(x)
(xt[-5, ])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...