将列中的值转换为R中现有数据框中的行名称
我想将现有数据框的列中的值转换为行名称。 是可以做到这一点,而无需导出数据框,然后用row.names =
call重新导入它。
例如,我想转换:
> samp names Var.1 Var.2 Var.3 1 A 1 5 0 2 B 2 4 1 3 C 3 3 2 4 D 4 2 3 5 E 5 1 4
成:
> samp.with.rownames Var.1 Var.2 Var.3 A 1 5 0 B 2 4 1 C 3 3 2 D 4 2 3 E 5 1 4
谢谢
这应该做的:
samp2 <- samp[,-1] rownames(samp2) <- samp[,1]
所以总之,没有别的办法可以重新分配。
编辑:纠正我自己,也可以做到这一点:分配rowname属性,然后删除列:
R> df<-data.frame(a=letters[1:10], b=1:10, c=LETTERS[1:10]) R> rownames(df) <- df[,1] R> df[,1] <- NULL R> df bc a 1 A b 2 B c 3 C d 4 D e 5 E f 6 F g 7 G h 8 H i 9 I j 10 J R>
在一行中
> samp.with.rownames <- data.frame(samp[,-1], row.names=samp[,1])
截至2016年,你也可以使用tidyverse
。
library(tidyverse) samp %>% remove_rownames %>% column_to_rownames(var="names")