2015-11-04 209 views
1

如果我有一个表示年龄的数字列表:3,5,6,7 ,并有一个与上述年龄相符的姓名列表:allen,jack,amy,亚历克斯 如果我想创造只包含1列岁的表,我想应该这个样子的,因为它在为R表中的rowname指定列名

Names Ages 
allen 3 
jack 5 
amy 6 
alex 7 

我用下面的代码在控制台呼叫

>table<-matrix(age_list, nrow = 4, ncol= 1, byrow = TRUE) 
>rownames(table)<- name_list 

和我只能指定1列名称为

>colnames(table)<-c("Ages") 

但结果是类似以下

 Ages 
allen 3 
jack 5 
amy 6 
alex 7 

如何与只有在这样一个表包含1列分配“名称”表的左上角。谢谢

+0

避免使用'表'命名,因为它也是一个内置函数。 – 2015-11-04 05:19:41

回答

2

如果你坚持使用矩阵,那么答案是你不能分配左上角。 R矩阵的行名称不是矩阵数据本身的一部分。

但是,您可以使用数据帧来代替:

table <- data.frame(Names=c("allen", "jack", "amy", "alex"), 
        Ages=c(3, 5, 6, 7)) 

> names(table) 
[1] "Names" "Ages" 
+0

'R矩阵没有行名'你的意思是rownames没有列名? –

+0

实际上,我使用as.table将其转换为表格类型,这是我必须具备的类型。我试图在数据框中完成它并将其转换为表格,当我调用它时,它总是在左侧显示一列从1到4的行数。你有任何解决方案来解决它?或者你能告诉我如何消除左边的数字列,因为它仍然是一个表类型。谢谢 –

+0

你原来的问题中的代码不是很可重复的,所以很难给你一个确切的答案,因为我们不能确定你想要什么。如果您希望“名称”列成为数据的一部分,那么它应该作为数据框或矩阵中的实际列存在。 –

2

你可以做到这一点,如:

ages <- c(3,5,6,7) 
nams <- c("allen","jack","amy","alex") 

out <- matrix(ages) 
dimnames(out) <- list(Names=nams, "Ages") 

#Names Ages 
# allen 3 
# jack  5 
# amy  6 
# alex  7 
+0

谢谢你们,非常感谢你 –

2

你可以试试,

names(dimnames(table)) <- c("Name", "Age") 

#  Age 
#Name [,1] 
#allen 3 
#jack  5 
#amy  6 
#alex  7