我希望能够访问b0.e7,c0.14,...,f8.d4。但是现在这些不在列中,而是"行名称"。如何将行名称1,2,3,4,5,6,7和b0.e7,c0.14,...,f8.d4作为它自己的列。感谢您的帮助。
df=as.data.frame(c)
df = subset(df, c>7)
df
c
b0.e7 11
c0.14 8
f8.d1 10
f8.d2 9
f8.d3 11
f8.d4 12
答案 0 :(得分:2)
试试这个。第一行分配一个新列,它只是数据框的当前行名。第二行将行名重置为NULL
,从而生成序列。
> df$new <- rownames(df)
> rownames(df) <- NULL
哪个应该导致
> df
# c new
# 1 11 b0.e7
# 2 8 c0.14
# 3 10 f8.d1
# 4 9 f8.d2
# 5 11 f8.d3
# 6 12 f8.d4
如果需要df[, c(2, 1)]
答案 1 :(得分:1)
您可以利用cbind.data.frame
可以使用来自data.frame
的参数的事实,其中一个参数是row.names
。该参数可以设置为NULL
,这意味着比Richard提出的更直接的方法是:
cbind(rn = rownames(mydf), mydf, row.names = NULL)
# rn c
# 1 b0.e7 11
# 2 c0.14 8
# 3 f8.d1 10
# 4 f8.d2 9
# 5 f8.d3 11
# 6 f8.d4 12
答案 2 :(得分:-1)
您也可以试试这个。
rows = row.names(df)
df1 = cbind(rows,df)