我有一个数据框架,它的格式看起来像这样。我想清理df,留下一定范围的行,从第1列显示"country"并在结束前两行写"结束"在第一列。我需要这样做,因为稍后我必须将df与来自其他时期的相同类型的工作表的其他dfs绑定在一起,因此工作表之间的范围是不同的。
A列 | B列 | C列 | - | - | - | 国家
---|---|---|
数量 | 年 | |
1 | 2018 | |
2 | 2019 | |
3 | 2019 | |
start_position <- which(df[,1]=="country")
end_position <- which(df[,1]=="end")
# change the third line
# ___ _
# df<- df[df(start_position:(end_position-2)),]
#
df <- df[ start_position:(end_position-2),]
给你
library(tibble)
df <- tribble(
~ColumnA, ~ColumnB, ~ColumnC,
"-", "-", "-",
"country", "number", "year",
"china", "1", "2018",
"japan", "2", "2019",
"usa", "3", "2019",
"end", "", ""
)
names_idx <- which(df[, 1] == "country")
end_idx <- which(df[, 1] == "end")
out <- df[(names_idx + 1):(end_idx - 1), ]
colnames(out) <- as.vector(as.matrix(df)[names_idx, ])
out
# A tibble: 3 × 3
country number year
<chr> <chr> <chr>
1 china 1 2018
2 japan 2 2019
3 usa 3 2019