R语言中实现第一列转化为行名、第一行转化为列名
1、第一列转化为行名
> x <- letters[1:5] > y <- 1:5 > z <- LETTERS[1:5] > dat <- data.frame(x, y, z) > dat ## 测试数据框 x y z 1 a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E > rownames(dat) <- dat[,1] ## 第一列转换为行名 > dat x y z a a 1 A b b 2 B c c 3 C d d 4 D e e 5 E > dat <- dat[,-1] ## 删除第一列 > dat y z a 1 A b 2 B c 3 C d 4 D e 5 E
2、将第一行转换为列名
> x <- letters[1:5] > y <- 1:5 > z <- LETTERS[1:5] > dat <- data.frame(x, y, z) > dat x y z 1 a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E > colnames(dat) <- dat[1,] ## 经列名定义为第一行 > dat a 1 A 1 a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E > dat <- dat[-1,] ## 删除第一行实现将第一行转换为列名 > dat a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E
3、行名转换为第一列
> x <- letters[1:5] > y <- 1:5 > z <- LETTERS[1:5] > dat <- data.frame(x, y, z) > dat x y z 1 a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E > dat <- cbind(rownames(dat),dat) ## 行名转换为第一列 > dat rownames(dat) x y z 1 1 a 1 A 2 2 b 2 B 3 3 c 3 C 4 4 d 4 D 5 5 e 5 E
4、列名转换为第一行
> x <- letters[1:5] > y <- 1:5 > z <- LETTERS[1:5] > dat <- data.frame(x, y, z) > dat x y z 1 a 1 A 2 b 2 B 3 c 3 C 4 d 4 D 5 e 5 E > dat <- rbind(colnames(dat), dat) ## 列名转换为第一行 > dat x y z 1 x y z 2 a 1 A 3 b 2 B 4 c 3 C 5 d 4 D 6 e 5 E