R:删除行不会向上移动某些 .csv 的数据,但会为 .xls 文件移动数据
R: Deleting Row doesn't shift data up for certain .csv but does for .xls file
我有兴趣查看几个州在 4 年内的 GDP。导入 .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
read.csv
函数returns一个data.frame而read_excel
returns一个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
小标题自动重新编号行:
library(tidyr)
xt <- tibble(x)
(xt[-5, ])
我建议您使用 readr
包中的 read_csv()
函数,该函数将其作为 tibble 导入,从而导致相同的行为。
我有兴趣查看几个州在 4 年内的 GDP。导入 .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
read.csv
函数returns一个data.frame而read_excel
returns一个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
小标题自动重新编号行:
library(tidyr)
xt <- tibble(x)
(xt[-5, ])
我建议您使用 readr
包中的 read_csv()
函数,该函数将其作为 tibble 导入,从而导致相同的行为。