我有一个数据框A,其中max(A$user_id)=23000
。还typeof(A$user_id)=integer
。我使用rownames(B)=unique(A$user_id)
和colnames(B)=unique(A$product_id)
制作了数据框B.但是,当我检查max(rownames(B))
时,它会显示为999
。我做了row names(B)<-as.integer(rownames(B))
。但是,
max(rownames(B))=999
。如何将rownames转换为整数呢?我想要这个,因为我想根据rownames填写B.
答案 0 :(得分:1)
rownames是字符
class(rownames(B))
因此max
按字母顺序给出最后一个数字。
根据您填充数据框的方式,每次要使用数字时都可以as.numeric(rownames(B))
,或者将B的第一列设为整数。
答案 1 :(得分:0)
rownames
将"row.names"
属性转换为字符向量。要将其检索为整数,请使用attr
。
max(attr(B, "row.names"))
来自?row.names
行名称当前允许为整数或字符,但是为了向后兼容(R <= 2.4.0),行名称将始终返回字符向量。 (如果您需要检索一组整数值的行名,请使用attr(x,“ row.names”)。