一段时间以来我一直在尝试这样做:
我想在R中将excel工作表的标题向上移动一列:
示例:
之前:
NO Id AGE Gender
XY 24 F
fg 67 M
之后:
Id Age Gender
XY 24 F
fg 67 M
这是一个具有58.000行和500列的大表。因此,需要以某种方式命名每个单独的列。
谢谢:)
如果应该删除列名NO
,则可以使用
names(data)[1:(ncol(data)-1)] <- names(data)[2:ncol(data)]
data[, ncol(data)] <- NULL
首先将列名向左移动一个位置,然后删除数据框data
的最后一列。
这是一个不错的:)
x=data.table(a=1,b=2,c=3,d=4)
#> x
# a b c d
#1: 1 2 3 4
names(x)[1:(ncol(x)-1)] = names(x)[2:(ncol(x))]
#> x
# b c d d <-- the last colname gets duplicated of course
#1: 1 2 3 4
数据:
data <- tibble::tribble(
~NO, ~Id, ~Age, ~Gender, ~month, ~year,
"XY", 24, "F", NA, 1990, NA,
"fg", 67, "M", NA, 1991, NA,
"dZ", 32, "M", NA, 1992, NA
)
data
# A tibble: 3 x 6
NO Id Age Gender month year
<chr> <dbl> <chr> <lgl> <dbl> <lgl>
1 XY 24 F NA 1990 NA
2 fg 67 M NA 1991 NA
3 dZ 32 M NA 1992 NA
data[] <- cbind(seq_len(nrow(data)), data[head(seq_along(data), -1)])
data$NO <- NULL
data
# A tibble: 3 x 5
Id Age Gender month year
<chr> <dbl> <chr> <lgl> <dbl>
1 XY 24 F NA 1990
2 fg 67 M NA 1991
3 dZ 32 M NA 1992
仅删除列名的第一个元素:
names(x) = names(x)[-1]